Delen via


Kleuren vertalen

Een vertaling voegt een waarde toe aan een of meer van de vier kleuronderdelen. De kleurmatrixvermeldingen die vertalingen vertegenwoordigen, worden gegeven in de volgende tabel.

Te vertalen onderdeel Matrixinvoer
Rood [4][0]
Groen [4][1]
Blauw [4][2]
Alfa [4][3]

 

In het volgende voorbeeld wordt een Image-object samengesteld uit het bestand ColorBars.bmp. Vervolgens voegt de code 0,75 toe aan het rode onderdeel van elke pixel in de afbeelding. De oorspronkelijke afbeelding wordt getekend naast de getransformeerde afbeelding.

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 de volgende afbeelding ziet u de oorspronkelijke afbeelding aan de linkerkant en de getransformeerde afbeelding aan de rechterkant.

afbeelding met vier gekleurde balken en vervolgens dezelfde balken met verschillende kleuren

De volgende tabel bevat de kleurvectoren voor de vier balken vóór en na de rode vertaling. Houd er rekening mee dat omdat de maximumwaarde voor een kleuronderdeel 1 is, het rode onderdeel in de tweede rij niet verandert. (Op dezelfde manier is de minimumwaarde voor een kleuronderdeel 0.)

Oorspronkelijk Vertaald
Zwart (0, 0, 0, 1) (0.75, 0, 0, 1)
Rood (1, 0, 0, 1) (1, 0, 0, 1)
Groen (0, 1, 0, 1) (0.75, 1, 0, 1)
Blauw (0, 0, 1, 1) (0.75, 0, 1, 1)