Compartir a través de


Efecto de morfología

Utilice el efecto de morfología para límites de borde finos o engrosados en una imagen. Este efecto crea un kernel que es 2 veces los valores 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 está corriendo).

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 de efecto

Enumeración de índice y nombre para mostrar Tipo y valor predeterminado Descripción
Modo
D2D1_MORPHOLOGY_PROP_MODE
D2D1_MORPHOLOGY_MODE
D2D1_MORPHOLOGY_MODE_ERODE
Modo de morfología. Los modos disponibles son degradados (aplanados) y dilate (engrosamiento).
Consulta 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 están en DIP. Los valores deben estar comprendidos entre 1 y 100.
Altura
D2D1_MORPHOLOGY_PROP_HEIGHT
UINT
1
Tamaño del kernel en la dirección Y. Las unidades están en DIP. Los valores deben estar comprendidos entre 1 y 100.

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
Crecimiento de mapa de bits de salida X = INT(FLOAT(Width) * ((User PPP) / 96))
Crecimiento del mapa de bits de salida Y = INT(FLOAT(Height) * ((User PPP) / 96))

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

Requisito Valor
Crecimiento de mapa de bits de salida X = INT(FLOAT(-Width) * ((User PPP) / 96))
Crecimiento del mapa de bits de salida Y = INT(FLOAT(-Height) * ((User PPP) / 96))

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