Schieren von Farben
Das Schieren erhöht oder verringert eine Farbkomponente um einen Betrag, der proportional zu einer anderen Farbkomponente ist. Betrachten Sie beispielsweise die Transformation, bei der die rote Komponente um die Hälfte des Werts der blauen Komponente erhöht wird. Bei einer solchen Transformation wird die Farbe (0,2, 0,5, 1) zu (0,7, 0,5, 1). Die neue rote Komponente ist 0,2 + (1/2)(1) = 0,7.
Im folgenden Beispiel wird ein Image-Objekt aus der Datei ColorBars4.bmp erstellt. Anschließend wendet der Code die im vorherigen Absatz beschriebene Schubtransformation auf jedes Pixel im Bild an.
Image image(L"ColorBars4.bmp");
ImageAttributes imageAttributes;
UINT width = image.GetWidth();
UINT height = image.GetHeight();
ColorMatrix colorMatrix = {
1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
0.5f, 0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f, 1.0f};
imageAttributes.SetColorMatrix(
&colorMatrix,
ColorMatrixFlagsDefault,
ColorAdjustTypeBitmap);
graphics.DrawImage(&image, 10, 10, width, height);
graphics.DrawImage(
&image,
Rect(150, 10, width, height), // destination rectangle
0, 0, // upper-left corner of source rectangle
width, // width of source rectangle
height, // height of source rectangle
UnitPixel,
&imageAttributes);
Die folgende Abbildung zeigt das ursprüngliche Bild auf der linken Seite und das schubgestrichene Bild auf der rechten Seite.

Die folgende Tabelle zeigt die Farbvektoren für die vier Balken vor und nach der Schubtransformation.
| Ursprünglich | Geschert |
|---|---|
| (0, 0, 1, 1) | (0.5, 0, 1, 1) |
| (0.5, 1, 0.5, 1) | (0.75, 1, 0.5, 1) |
| (1, 1, 0, 1) | (1, 1, 0, 1) |
| (0.4, 0.4, 0.4, 1) | (0.6, 0.4, 0.4, 1) |