Freigeben über


Morphologieeffekt

Verwenden Sie den Morphologieeffekt, um Randgrenzen in einem Bild zu dünn 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.

Beispielbilder

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

Vor
das Bild vor dem Effekt.
Nach
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 Typ und Standardwert Beschreibung
Modus
D2D1_MORPHOLOGY_PROP_MODE
D2D1_MORPHOLOGY_MODE
D2D1_MORPHOLOGY_MODE_ERODE
Der Morphologiemodus. Die verfügbaren Modi sind erodieren (flach) und Dilat (Dickung).
Weitere Informationen finden Sie unter Morphologiemodi.
Breite
D2D1_MORPHOLOGY_PROP_WIDTH
UINT
1
Größe des Kernels in X-Richtung. Die Einheiten befinden sich in DIPs. Die Werte müssen zwischen 1 und 100 (einschließlich) liegen.
Höhe
D2D1_MORPHOLOGY_PROP_HEIGHT
UINT
1
Größe des Kernels in Y-Richtung. Die Einheiten befinden sich in DIPs. Die Werte müssen 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
Output Bitmap Growth X = INT(FLOAT(Width) * ((User DPI) / 96))
Output Bitmap Growth Y = INT(FLOAT(Height) * ((User DPI) / 96))

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

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

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps]
Mindestens unterstützter Server Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps]
Kopfball d2d1effects.h
Bibliothek d2d1.lib, dxguid.lib

ID2D1Effect-