색 번역
변환은 네 가지 색 구성 요소 중 하나 이상에 값을 추가합니다. 변환을 나타내는 색 행렬 항목은 다음 표에 제공되어 있습니다.
변환할 구성 요소 | 행렬 항목 |
---|---|
빨간색 | [4][0] |
녹색 | [4][1] |
파랑 | [4][2] |
알파 | [4][3] |
다음 예제에서는 파일 ColorBars.bmp Image 개체를 생성합니다. 그런 다음, 코드는 이미지에서 각 픽셀의 빨간색 구성 요소에 0.75를 추가합니다. 원본 이미지는 변환된 이미지와 함께 그려집니다.
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);
다음 그림에서는 왼쪽에 원본 이미지, 오른쪽에 변환된 이미지를 보여줍니다.
다음 표에서는 빨간색 변환 전후에 네 개의 막대에 대한 색 벡터를 나열합니다. 색 구성 요소의 최댓값은 1이므로, 두 번째 행의 빨간색 구성 요소는 변경되지 않습니다. (마찬가지로 색 구성 요소의 최솟값은 0입니다.)
Original | 변역됨 |
---|---|
검정색(0, 0, 0, 1) | (0.75, 0, 0, 1) |
빨간색(1, 0, 0, 1) | (1, 0, 0, 1) |
녹색(0, 1, 0, 1) | (0.75, 1, 0, 1) |
파란색(0, 0, 1, 1) | (0.75, 0, 1, 1) |