Übersetzen von Farben
Eine Translation fügt einer oder mehreren der vier Farbkomponenten einen Wert hinzu. Die Farbmatrixeinträge, die Translationen darstellen, finden Sie in der folgenden Tabelle.
Translation für Komponente | Matrixeintrag |
---|---|
Red | [4][0] |
Grün | [4][1] |
Blau | [4][2] |
Alpha | [4][3] |
Im folgenden Beispiel wird ein Image-Objekt aus der Datei ColorBars.bmp erstellt. Anschließend fügt der Code der Rot-Komponente jedes Pixels im Bild 0,75 hinzu. Das Originalbild wird neben dem transformierten Bild gezeichnet.
Image image(L"ColorBars.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.0f, 0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
0.75f, 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);
In der folgenden Abbildung wird links das Originalbild und rechts das transformierte Bild gezeigt.
In der folgenden Tabelle sind die Farbvektoren für die vier Balken vor und nach der Translation aufgeführt. Beachten Sie, dass sich die Rot-Komponente in der zweiten Zeile nicht ändert, da der Höchstwert für eine Farbkomponente 1 beträgt. (Ähnlich ist der Mindestwert für eine Farbkomponente 0.)
Ursprünglich | Übersetzt |
---|---|
Black (0, 0, 0, 1) | (0.75, 0, 0, 1) |
Red (1, 0, 0, 1) | (1, 0, 0, 1) |
Green (0, 1, 0, 1) | (0.75, 1, 0, 1) |
Blue (0, 0, 1, 1) | (0.75, 0, 1, 1) |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für