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 |
---|
After |
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 |