Efecto Atlas

Puede usar este efecto para generar una parte de una imagen, pero conservar la región fuera de la parte para su uso en operaciones posteriores.

El CLSID de este efecto es CLSID_D2D1Atlas.

El efecto atlas es útil si desea cargar una imagen grande formada por muchas imágenes más pequeñas, como varios fotogramas de un sprite.

Para crear la salida, el efecto:

  1. Recorta la entrada a la propiedad InputRect especificada.
  2. Convierte el origen del resultado en (0,0).

Nota:

La propiedad InputPaddingRect solo debe ser mayor si y solo si los píxeles entre los dos rectángulos son transparentes negros en la entrada. Esto puede dar lugar a que Direct2D ejecute el grafo de forma más óptima.

Este es un ejemplo del efecto. Esta imagen es pequeña y sencilla para fines ilustrativos.

imagen de entrada.

La imagen anterior es la entrada del efecto. El código aquí crea un efecto atlas, establece la entrada, establece el rectángulo de entrada y, a continuación, dibuja la salida.

ComPtr<ID2D1Effect> atlasEffect;

// Create the Atlas Effect.
DX::ThrowIfFailed(m_d2dContext->CreateEffect(CLSID_D2D1Atlas, &atlasEffect));

// Set the input.
atlasEffect->SetInputEffect(0, inputImage.Get());

// The images here are 150 x 150 pixels.
float size = 150.0f;

// Compensate for the padding between images.
float padding = 10.0f;

// The input rectangle.  150 x 150 pixels with 10 pixel padding
D2D1_Vector_4F inputRect = D2D1::Vector4F(size + (padding * 2), padding, size, size);

DX::ThrowIfFailed(atlasEffect->SetValue(D2D1_ATLAS_PROP_INPUT_RECT, inputRect));

// Draw the image
m_d2dContext->DrawImage(atlasEffect.Get());

El código anterior selecciona un rectángulo que está alrededor del segundo triángulo. Se omite el relleno alrededor de él. Esta es la imagen resultante.

imagen de salida.

Nota:

Esta es una situación en la que puede optar por especificar un InputPaddingRect porque el relleno es negro transparente. El rectángulo sería D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding);.

Propiedades de efecto

Enumeración de índice y nombre para mostrar Descripción
InputRect
D2D1_ATLAS_PROP_INPUT_RECT
Parte de la imagen pasada al siguiente efecto.
El tipo es D2D1_VECTOR_4F.
El valor predeterminado es (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX).
InputPaddingRect
D2D1_ATLAS_PROP_INPUT_PADDING_RECT
Tamaño máximo muestreado para el rectángulo de salida.
El tipo es D2D1_VECTOR_4F.
El valor predeterminado es (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX).

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