Compartir a través de


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 están compuestas a partir de la primera entrada y la segunda, etc.

Este efecto implementa todos los modos mediante la unidad de fusión de la unidad de procesamiento de gráficos (GPU).

El CLSID de este efecto es CLSID_D2D1Composite.

Imagen de ejemplo

En esta imagen se muestran 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 Source Over.

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

Este es otro ejemplo mediante 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 índice y nombre para mostrar Tipo y valor predeterminado Descripción
Modo
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 se modifican.

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 Direct2D.

Requisitos

Requisito Valor
Cliente mínimo admitido Windows 8 y Platform Update para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows]
Servidor mínimo admitido Windows 8 y Platform Update para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows]
Encabezado d2d1effects.h
Biblioteca d2d1.lib, dxguid.lib

ID2D1Effect