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 |
---|
![]() |
Nach |
![]() |
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 |