다음을 통해 공유


색 행렬 효과

색 행렬 효과를 사용하여 비트맵의 RGBA 값을 변경합니다.

이 효과를 사용하여 다음을 수행할 수 있습니다.

  • 이미지에서 색 채널을 제거합니다.
  • 이미지의 색을 줄입니다.
  • 색 채널을 교환합니다.
  • 색 채널을 결합합니다.

많은 기본 제공 효과는 효과의 의도된 사용에 최적화된 색 매트릭스의 전문화입니다. 예를 들어 채도, 색조 회전, 세피아, 온도 및 색조가 있습니다.

이 효과에 대한 CLSID는 CLSID_D2D1ColorMatrix.

예제 이미지

이 예제에서는 빨간색 및 파란색 채널을 교환하는 색 행렬 효과의 입력 및 출력 이미지를 보여 줍니다.

이전
효과 앞의 이미지입니다.
After
변환 후의 이미지입니다.
ComPtr<ID2D1Effect> colorMatrixEffect;
m_d2dContext->CreateEffect(CLSID_D2D1ColorMatrix, &colorMatrixEffect);

colorMatrixEffect->SetInput(0, bitmap);
D2D1_MATRIX_5X4_F matrix = D2D1::Matrix5x4F(0, 0, 1, 0,   0, 1, 0, 0,   1, 0, 0, 0,   0, 0, 0, 1,   0, 0, 0, 0);
colorMatrixEffect->SetValue(D2D1_COLORMATRIX_PROP_COLOR_MATRIX, matrix);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(colorMatrixEffect.Get());
m_d2dContext->EndDraw();

이 효과는 이 수식에 표시된 것처럼 이미지의 RGBA 값에 5x4 열 주 행렬을 곱합니다.

예제 행렬 정의입니다.

이 효과는 직선 및 미리 곱한 알파 이미지에서 작동합니다.

효과 속성

표시 이름 및 인덱스 열거형 Description
ColorMatrix
D2D1_COLORMATRIX_PROP_COLOR_MATRIX
float 값의 5x4 행렬입니다. 행렬의 요소는 바인딩되지 않으며 단위가 없습니다.
기본값은 ID 행렬입니다.
형식이 D2D1_MATRIX_5X4_F.
기본값은 Matrix5x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0)입니다.
AlphaMode
D2D1_COLORMATRIX_PROP_ALPHA_MODE
출력의 알파 모드입니다. 자세한 내용은 알파 모드를 참조하세요.
형식이 D2D1_COLORMATRIX_ALPHA_MODE.
기본값은 D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED.
ClampOutput
D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT
효과가 그래프의 다음 효과에 값을 전달하기 전에 효과가 색 값을 0에서 1 사이로 고정하는지 여부입니다. 효과는 알파 를 미리 곱하기 전에 값을 고정합니다.
이 값을 TRUE로 설정하면 효과가 값을 고정합니다. FALSE로 설정하면 효과는 색 값을 고정하지 않지만, 다른 효과와 출력 표면이 충분히 높은 정밀도를 없으면 값을 고정할 수 있습니다.
BOOL 형식입니다.
기본값은 FALSE입니다.

알파 모드

속성 Description
D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED 효과는 입력을 미리 곱하지 않고 색 행렬을 적용하며 출력을 미리 곱합니다.
D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT 이 효과는 색 행렬을 입력에 직접 적용하고 출력을 미리 곱하지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱]
지원되는 최소 서버 Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱]
헤더 d2d1effects.h
라이브러리 d2d1.lib, dxguid.lib

ID2D1Effect