색 행렬 효과
색 행렬 효과를 사용하여 비트맵의 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 |