Efecto compuesto

Use el efecto compuesto para combinar 2 o más imágenes. Este efecto tiene 13 modos compuestos diferentes. T

El efecto compuesto acepta 2 o más entradas. Cuando se especifican 2 imágenes, el destino es la primera entrada (índice 0) y el origen es la segunda entrada (índice 1). Si especifica más de 2 entradas, las imágenes se componen a partir de la primera entrada y la segunda, etc.

Este efecto implementa todos los modos mediante la unidad de mezcla de la unidad de procesamiento gráfico (GPU).

El CLSID de este efecto es CLSID_D2D1Composite.

Imagen de ejemplo

La imagen aquí muestra 2 rectángulos redondeados del mismo tamaño que se superponen. El rectángulo azul es el origen y el rectángulo rojo es el destino. Las imágenes se han compuesto con el modo Origen sobre.

una imagen de ejemplo que muestra dos rectángulos redondeados del mismo tamaño que se superponen mediante el modo de origen a través de .

Este es otro ejemplo con el modo predeterminado.

Antes de la imagen 1
la primera imagen de origen antes del efecto.
Antes de la imagen 2
la segunda imagen antes del efecto.
Después
la imagen después de la transformación.
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);

compositeEffect->SetInput(0, bitmap);
compositeEffect->SetInput(1, bitmapTwo);

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

Propiedades de efecto

Enumeración de nombre para mostrar e índice Tipo y valor predeterminado Descripción
Mode
D2D1_COMPOSITE_PROP_MODE
D2D1_COMPOSITE_MODE
D2D1_COMPOSITE_MODE_SOURCE_OVER
Modo utilizado para el efecto.

Tipos de modo

En la tabla siguiente se muestran los modos de este efecto. Las ecuaciones enumeradas en la tabla usan estos elementos:

  • O = Salida
  • S = Origen
  • SA = Source Alpha
  • D = Destino
  • DA = Destination Alpha
Enumeración Ecuación Tamaño del mapa de bits de salida
D2D1_COMPOSITE_MODE_SOURCE_OVER O = S + (1 SA) * D Unión de mapas de bits de origen y destino
D2D1_COMPOSITE_MODE_DESTINATION_OVER O = (1 DA) * S + D Unión de mapas de bits de origen y destino
D2D1_COMPOSITE_MODE_SOURCE_IN O = DA * S Intersección de mapas de bits de origen y destino
D2D1_COMPOSITE_MODE_DESTINATION_IN O = SA * D Intersección de mapas de bits de origen y destino
D2D1_COMPOSITE_MODE_SOURCE_OUT O = (1 - DA) * S Región del mapa de bits de origen
D2D1_COMPOSITE_MODE_DESTINATION_OUT O = (1 - SA) * D Región del mapa de bits de destino
D2D1_COMPOSITE_MODE_SOURCE_ATOP O = DA * S + (1 - SA) * D Región del mapa de bits de destino
D2D1_COMPOSITE_MODE_DESTINATION_ATOP O = (1 - DA) * S + SA * D Región del mapa de bits de origen
D2D1_COMPOSITE_MODE_XOR O = (1 - DA) * S + (1 - SA) * D Unión de mapas de bits de origen y destino
D2D1_COMPOSITE_MODE_PLUS O = S + D Unión de mapas de bits de origen y destino
D2D1_COMPOSITE_MODE_SOURCE_COPY O = S Región del mapa de bits de origen
D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY O = S (solo donde existe el origen) Unión de mapas de bits de origen y destino. El destino no se sobrescribe donde el origen no existe.
D2D1_COMPOSITE_MODE_MASK_INVERT O = (1 D) * S + (1 SA) * D Unión de mapas de bits de origen y destino. Los valores alfa no cambian.

En esta ilustración se muestra un ejemplo de cada uno de los modos con imágenes que tienen una opacidad de 1,0 o 0,5.

una imagen de ejemplo de cada uno de los modos con opacidad establecida en 1.0 o 0.5.

Código de ejemplo

Para obtener un ejemplo de este efecto, descargue el ejemplo de modos de efecto compuesto de Direct2D.

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

ID2D1Effect