Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Utilice el efecto de matriz de colores para modificar los valores RGBA de un mapa de bits.
Puede usar este efecto para:
- Quite un canal de color de una imagen.
- Reduzca el color de una imagen.
- Intercambiar canales de color.
- Combinar canales de color.
Muchos efectos integrados son especializaciones de matriz de colores optimizadas para el uso previsto de los efectos. Algunos ejemplos son saturación, rotación de matiz, sepia y temperatura y tono.
El CLSID de este efecto es CLSID_D2D1ColorMatrix.
Imagen de ejemplo
En el ejemplo siguiente se muestran las imágenes de entrada y salida del efecto de matriz de colores que intercambia los canales rojo y azul.
Antes |
---|
![]() |
Después |
![]() |
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();
Este efecto multiplica los valores RGBA de la imagen por una matriz principal de columna 5x4, como se muestra en esta ecuación.
Este efecto funciona en imágenes alfa rectas y premultiplicadas.
Propiedades de efecto
Enumeración de nombre para mostrar e índice | Descripción |
---|---|
Colormatrix D2D1_COLORMATRIX_PROP_COLOR_MATRIX |
Matriz de 5x4 de valores float. Los elementos de la matriz no están limitados y no están unidos. El valor predeterminado es la matriz de identidad. El tipo es D2D1_MATRIX_5X4_F. El valor predeterminado es Matrix5x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0). |
AlphaMode D2D1_COLORMATRIX_PROP_ALPHA_MODE |
Modo alfa de la salida. Consulta Modos alfa para obtener más información. El tipo es D2D1_COLORMATRIX_ALPHA_MODE. El valor predeterminado es D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED. |
ClampOutput D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT |
Si el efecto sujeta los valores de color a entre 0 y 1 antes de que el efecto pase los valores al siguiente efecto del gráfico. El efecto sujeta los valores antes de que premulte el alfa . Si establece esto en TRUE, el efecto restringirá los valores. Si establece esto en FALSE, el efecto no sujetará los valores de color, pero otros efectos y la superficie de salida pueden sujetar los valores si no tienen una precisión lo suficientemente alta. El tipo es BOOL. El valor predeterminado es FALSE. |
Modos alfa
Nombre | Descripción |
---|---|
D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED | El efecto anula la premultiplicación de la entrada, aplica la matriz de colores y premultiplica la salida. |
D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT | El efecto aplica la matriz de colores directamente a la entrada y no premultipamente la salida. |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 y actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows] |
Servidor mínimo compatible | Windows 8 y actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows] |
Encabezado | d2d1effects.h |
Biblioteca | d2d1.lib, dxguid.lib |