Morphologie-Effekt

Verwenden Sie den Morphologie-Effekt, um Randgrenzen in einem Bild zu verdünnen oder zu verdicken. Dieser Effekt erstellt einen Kernel, der 2 Mal die von Ihnen angegebenen Werte für Breite und Höhe aufweist. Dieser Effekt zentriert den Kernel auf dem Pixel, das berechnet wird, und gibt den Maximalwert im Kernel zurück (wenn die Dilierung erfolgt) oder den Minimalwert im Kernel (wenn erodieren).

Die CLSID für diesen Effekt ist CLSID_D2D1Morphology.

Beispielbild

Dieses Beispiel zeigt die Ausgabe des Effekts bei Verwendung des Erodiermodus.

Vorher
das Bild vor dem Effekt.
After
das Bild nach der Transformation.
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(); 

Effekteigenschaften

Anzeigename und Indexenumeration Standardwert für Typ Beschreibung
Mode
D2D1_MORPHOLOGY_PROP_MODE
D2D1_MORPHOLOGY_MODE
D2D1_MORPHOLOGY_MODE_ERODE
Der Morphologiemodus. Die verfügbaren Modi sind erodieren (flach) und erweitern (dick).
Weitere Informationen finden Sie unter Morphologiemodi .
Width
D2D1_MORPHOLOGY_PROP_WIDTH
UINT
1
Größe des Kernels in X-Richtung. Die Einheiten befinden sich in DIPs. Der Wert muss zwischen 1 und 100 (einschließlich) liegen.
Height
D2D1_MORPHOLOGY_PROP_HEIGHT
UINT
1
Größe des Kernels in Y-Richtung. Die Einheiten befinden sich in DIPs. Der Wert muss zwischen 1 und 100 (einschließlich) liegen.

Morphologiemodi

Name Beschreibung
D2D1_MORPHOLOGY_MODE_ERODE Der Mindestwert aus jedem RGB-Kanal im Kernel wird verwendet.
D2D1_MORPHOLOGY_MODE_DILATE Der Maximalwert aus jedem RGB-Kanal im Kernel wird verwendet.

Ausgabebitmap

Für den DILATE-Modus wächst die Größe der Ausgabebitmap:

Anforderung Wert
Ausgabe Bitmap Wachstum X = INT(FLOAT(Width) * ((User DPI) / 96))
Ausgabe Bitmap Wachstum Y = INT(FLOAT(Height) * ((User DPI) / 96))

Für den ERODE-Modus wird die Größe der Ausgabebitmap verkleinern:

Anforderung Wert
Ausgabe Bitmap Wachstum X = INT(FLOAT(-Width) * ((User DPI) / 96))
Ausgabe Bitmap Wachstum Y = INT(FLOAT(-Height) * ((User DPI) / 96))

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps]
Unterstützte Mindestversion (Server) Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps]
Header d2d1effects.h
Bibliothek d2d1.lib, dxguid.lib

ID2D1Effect