Condividi tramite


Effetto morfologico

Utilizzare l'effetto morfologico per sottili o addensare i confini del bordo in un'immagine. Questo effetto crea un kernel che corrisponde a 2 volte i valori Width e Height specificati. Questo effetto centra il kernel sul pixel che sta calcolando e restituisce il valore massimo nel kernel (se dilating) o il valore minimo nel kernel (se eroding).

Il CLSID per questo effetto è CLSID_D2D1Morphology.

Immagini di esempio

Questo esempio mostra l'output dell'effetto quando si usa la modalità di erosione.

Prima di
l'immagine prima dell'effetto.
Dopo
immagine dopo la trasformazione.
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(); 

Proprietà dell'effetto

Enumerazione del nome visualizzato e dell'indice Tipo e valore predefinito Descrizione
Modalità
D2D1_MORPHOLOGY_PROP_MODE
D2D1_MORPHOLOGY_MODE
D2D1_MORPHOLOGY_MODE_ERODE
La modalità morfologica. Le modalità disponibili sono erose (appiattite) e dilate (ispessire).
Per altre informazioni, vedi Modalità di morfologia.
Larghezza
D2D1_MORPHOLOGY_PROP_WIDTH
UINT
1
Dimensioni del kernel nella direzione X. Le unità sono in DIP. I valori devono essere compresi tra 1 e 100 inclusi.
Altezza
D2D1_MORPHOLOGY_PROP_HEIGHT
UINT
1
Dimensioni del kernel nella direzione Y. Le unità sono in DIP. I valori devono essere compresi tra 1 e 100 inclusi.

Modalità morfologiche

Nome Descrizione
D2D1_MORPHOLOGY_MODE_ERODE Viene usato il valore minimo di ogni canale RGB nel kernel.
D2D1_MORPHOLOGY_MODE_DILATE Viene usato il valore massimo di ogni canale RGB nel kernel.

Bitmap di output

Per la modalità DILATE, le dimensioni bitmap di output aumentano:

Requisito Valore
Output Bitmap Growth X = INT(FLOAT(Width) * ((User DPI) / 96))
Output Bitmap Growth Y = INT(FLOAT(Height) * ((User DPI) / 96))

Per la modalità ERODE, le dimensioni bitmap di output si riducono:

Requisito Valore
Output Bitmap Growth X = INT(FLOAT(-Width) * ((User DPI) / 96))
Output Bitmap Growth Y = INT(FLOAT(-Height) * ((USER DPI) / 96))

Requisiti

Requisito Valore
Client minimo supportato Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store]
Server minimo supportato Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store]
Intestazione d2d1effects.h
Libreria d2d1.lib, dxguid.lib

ID2D1Effect