Compartir a través de


enumeración D2D1_ALPHA_MODE (dcommon.h)

Especifica cómo se debe tratar el valor alfa de un mapa de bits o un destino de representación.

Syntax

typedef enum D2D1_ALPHA_MODE {
  D2D1_ALPHA_MODE_UNKNOWN = 0,
  D2D1_ALPHA_MODE_PREMULTIPLIED = 1,
  D2D1_ALPHA_MODE_STRAIGHT = 2,
  D2D1_ALPHA_MODE_IGNORE = 3,
  D2D1_ALPHA_MODE_FORCE_DWORD = 0xffffffff
} ;

Constantes

 
D2D1_ALPHA_MODE_UNKNOWN
Valor: 0
Es posible que el valor alfa no sea significativo.
D2D1_ALPHA_MODE_PREMULTIPLIED
Valor: 1
El valor alfa se ha premultiplicado. Cada color se escala primero mediante el valor alfa. El propio valor alfa es el mismo en alfa recto y premultiplicado. Normalmente, ningún valor de canal de color es mayor que el valor del canal alfa. Si un valor de canal de color en un formato premultiplido es mayor que el canal alfa, la combinación de origen estándar supera los resultados matemáticos en una mezcla aditiva.
D2D1_ALPHA_MODE_STRAIGHT
Valor: 2
El valor alfa no se ha premultiplicado. El canal alfa indica la transparencia del color.
D2D1_ALPHA_MODE_IGNORE
Valor: 3
El valor alfa se omite.
D2D1_ALPHA_MODE_FORCE_DWORD
Valor: 0xffffffff

Comentarios

La enumeración D2D1_ALPHA_MODE se usa con la enumeración D2D1_PIXEL_FORMAT para especificar el modo alfa de un destino de representación o mapa de bits. Los diferentes destinos de representación y mapas de bits admiten diferentes modos alfa. Para obtener una lista, consulte Formatos de píxeles admitidos y Modos alfa.

Las diferencias entre el alfa recto y premultipado

Al describir un color RGBA mediante alfa recto, el valor alfa del color se almacena en el canal alfa. Por ejemplo, para describir un color rojo que es 60 % opaco, usaría los siguientes valores: (255, 0, 0, 255 * 0,6) = (255, 0, 0, 153). El valor 255 indica rojo completo y 153 (que es el 60 por ciento del 255) indica que el color debe tener una opacidad del 60 por ciento.

Al describir un color RGBA con alfa premultipado, cada color se multiplica por el valor alfa: (255 * 0,6, 0 * 0,6, 0 * 0,6, 0,6, 255 * 0,6) = (153, 0, 0, 153).

Independientemente del modo alfa del destino de representación, D2D1_COLOR_F valores siempre se interpretan como alfa recto. Por ejemplo, al especificar el color de un ID2D1SolidColorBrush para su uso con un mapa de bits que usa el modo alfa premultipado, especificaría el color igual que lo haría si el mapa de bits usara alfa recto. Al pintar con el pincel, Direct2D traduce el color al formato de destino automáticamente.

Modo alfa para destinos de representación

Independientemente de la configuración del modo alfa, el contenido de un destino de representación admite la transparencia. Por ejemplo, si dibuja un rectángulo rojo parcialmente transparente con un destino de representación con un modo alfa de D2D1_ALPHA_MODE_IGNORE, el rectángulo aparecerá rosa (si el fondo es blanco), como podría esperar.

Si dibuja un rectángulo rojo parcialmente transparente cuando el modo alfa es El método CreateCompatibleRenderTarget ) para crear un mapa de bits que admita transparencia.

Modos ClearType y Alfa

Si especifica un modo alfa distinto de D2D1_ALPHA_MODE_IGNORE para un destino de representación, el modo de suavizado de texto cambia automáticamente de D2D1_TEXT_ANTIALIAS_MODE CLEARTYPE a D2D1_TEXT_ANTIALIAS_MODE GRAYSCALE. (Cuando se especifica un modo alfa de D2D1_ALPHA_MODE_UNKNOWN, Direct2D establece el alfa según el tipo de destino de representación. Para obtener una lista de lo que se resuelve la configuración de D2D1_ALPHA_MODE_UNKNOWN para cada destino de representación, consulte la información general sobre los formatos de píxeles admitidos y los modos alfa ).

Puede usar el método SetTextAntialiasMode para cambiar el modo antialias de texto de nuevo a D2D1_TEXT_ANTIALIAS_MODE CLEARTYPE, pero representar texto ClearType en una superficie transparente puede crear resultados impredecibles. Si desea representar texto ClearType en un destino de representación transparente, se recomienda usar una de las dos técnicas siguientes.

  • Use el método PushAxisAlignedClip para recortar el destino de representación en el área donde se representará el texto y, a continuación, llame al método Clear y especifique un color opaco y, a continuación, represente el texto.
  • Use DrawRectangle para dibujar un rectángulo opaco detrás del área donde se representará el texto.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP]
Encabezado dcommon.h (incluya D2d1.h)

Consulte también

Formatos de píxel admitidos y modos alfa