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
- Propiedades de efecto
- Tipos de modo
- Código de ejemplo
- Requisitos
- Temas relacionados
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.
Este es otro ejemplo con el modo predeterminado.
Antes de la imagen 1 |
---|
Antes de la imagen 2 |
Después |
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.
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 |