Compartir a través de


Efecto de morfología

Utilice el efecto de morfología para hacer que los límites de borde sean más finos o gruesos en una imagen. Este efecto crea un kernel que es 2 veces los valores de Width y Height especificados. Este efecto centra el kernel en el píxel que calcula y devuelve el valor máximo en el kernel (si se dilata) o el valor mínimo en el kernel (si se degrada).

El CLSID de este efecto es CLSID_D2D1Morphology.

Imágenes de ejemplo

En este ejemplo se muestra la salida del efecto al usar el modo de degradación.

Antes
La imagen antes del efecto.
Después
La imagen después de la transformación.
ComPtr<ID2D1Effect> morphologyEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Morphology, &morphologyEffect);

morphologyEffect->SetInput(0, bitmap);

morphologyEffect->SetValue(D2D1_MORPHOLOGY_PROP_MODE, D2D1_MORPHOLOGY_MODE_ERODE);
morphologyEffect->SetValue(D2D1_MORPHOLOGY_PROP_WIDTH, 14);

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

Propiedades del efecto

Nombre para mostrar y enumeración del índice Tipo y valor predeterminado Descripción
Mode
D2D1_MORPHOLOGY_PROP_MODE
D2D1_MORPHOLOGY_MODE
D2D1_MORPHOLOGY_MODE_ERODE
Modo de morfología. Los modos disponibles se degradan (aplanan) y dilatan (engruesan).
Vea Modos de morfología para obtener más información.
Ancho
D2D1_MORPHOLOGY_PROP_WIDTH
UINT
1
Tamaño del kernel en la dirección X. Las unidades se expresan en DIP. El valor debe estar entre 1 y 100, ambos inclusive.
Height
D2D1_MORPHOLOGY_PROP_HEIGHT
UINT
1
Tamaño del kernel en la dirección Y. Las unidades se expresan en DIP. El valor debe estar entre 1 y 100, ambos inclusive.

Modos de morfología

Nombre Descripción
D2D1_MORPHOLOGY_MODE_ERODE Se usa el valor mínimo de cada canal RGB del kernel.
D2D1_MORPHOLOGY_MODE_DILATE Se usa el valor máximo de cada canal RGB del kernel.

Mapa de bits de salida

Para el modo DILATE, el tamaño del Mapa de bits de salida aumenta:

Requisito Valor
Aumento de X del Mapa de bits de salida = INT(FLOAT(Ancho) * ((DPI del usuario)/96))
Aumento de Y del Mapa de bits de salida = INT(FLOAT(Alto) * ((DPI del usuario)/96))

Para el modo SHRINK, el tamaño del mapa de bits de salida se reduce:

Requisito Valor
Aumento de X del Mapa de bits de salida = INT(FLOAT(-Ancho) * ((DPI del usuario)/96))
Aumento de Y del Mapa de bits de salida = INT(FLOAT(-Alto) * ((DPI del usuario)/96))

Requisitos

Requisito Valor
Cliente mínimo compatible 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