Freigeben über


Direktionaler Weichzeichnereffekt

Der direktionale Weichzeichnereffekt ähnelt gaussischen Weichzeichner, es sei denn, Sie können den Weichzeichner in einer bestimmten Richtung verzerren. Sie können diesen Effekt verwenden, um ein Bild so aussehen zu lassen, als ob es in Bewegung ist oder um ein animiertes Bild hervorzuheben.

Die CLSID für diesen Effekt ist CLSID_D2D1DirectionalBlur.

Beispielbild

Vor
das Bild vor dem Effekt.
Nach
das Bild nach der Transformation.
ComPtr<ID2D1Effect> directionalBlurEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DirectionalBlur, &directionalBlurEffect);

directionalBlurEffect->SetInput(0, bitmap);
directionalBlurEffect->SetValue(D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION, 7.0f);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(directionalBlurEffect.Get());
m_d2dContext->EndDraw();

Effekteigenschaften

Anzeigename und Indexenumeration Beschreibung
StandardDeviation
D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION
Die Menge der Weichzeichner, die auf das Bild angewendet werden soll. Sie können den Weichzeichnerradius des Kernels berechnen, indem Sie die Standardabweichung mit 3 multiplizieren. Die Einheiten der Standardabweichung und des Weichzeichnerradius sind DIPs. Dieser Effekt wird durch einen Wert von 0 DIPs deaktiviert. Der Typ ist FLOAT.
Der Standardwert ist 3,0f.
Winkel
D2D1_DIRECTIONALBLUR_PROP_ANGLE
Der Winkel des Weichzeichners relativ zur X-Achse in richtung gegen den Uhrzeigersinn. Die Einheiten werden in Grad angegeben.
Der Weichzeichnerkern wird zuerst mit demselben Prozess wie für den gaussischen Weichzeichner Effekt generiert. Die Kernelwerte werden dann entsprechend dem Weichzeichnerwinkel transformiert.
Der Typ ist FLOAT.
Der Standardwert ist 0,0f.
Optimierung
D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION
Der Optimierungsmodus. Weitere Informationen finden Sie unter Optimierungsmodi.
Der Typ ist D2D1_DIRECTIONALBLUR_OPTIMIZATION.
Der Standardwert ist D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED.
BorderMode
D2D1_DIRECTIONALBLUR_PROP_BORDER_MODE
Der Modus, der zum Berechnen des Rahmens des Bilds verwendet wird, weich oder hart. Weitere Informationen finden Sie unter Rahmenmodi.
Der Typ ist D2D1_BORDER_MODE.
Der Standardwert ist D2D1_BORDER_MODE_SOFT.

Optimierungsmodi

Name Beschreibung
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED Wendet interne Optimierungen wie z. B. die Vorskalierung bei relativ kleinen Bogenmaßen an. Verwendet lineare Filterung.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED Verwendet dieselben Optimierungsschwellenwerte wie der Geschwindigkeitsmodus, verwendet aber die trilineare Filterung.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY Verwendet nur interne Optimierungen mit großen Weichzeichnerradien, bei denen Annäherungen weniger wahrscheinlich sichtbar sind. Verwendet die Trilinearfilterung.

Rahmenmodi

Name Beschreibung
D2D1_BORDER_MODE_SOFT Die Effektpads des Bilds mit transparenten schwarzen Pixeln, während er den Weichzeichnerkern anwendet, was zu einem weichen Rand führt.
D2D1_BORDER_MODE_HARD Der Effekt klemmt die Ausgabe an die Größe des Eingabebilds. Wenn der Effekt den Weichzeichnerkern anwendet, wird das Eingabebild mit einer Spiegelrahmentransformation für Beispiele außerhalb der Eingabegrenzen erweitert.

Ausgabebitmap

Die Größe der Ausgabebitmap steigt basierend auf der Standardabweichung, dem Winkel des Effekts und dem Rahmenmodus. Wenn der Rahmenmodus auf D2D1_BORDER_MODE_SOFT die Größe der Ausgabebitmap um die Größe des Weichzeichnerkerns erhöht wird, dargestellt in Pixeln. Diese Formeln können verwendet werden, um die Größe der Ausgabebitmap zu berechnen.

Anforderung Wert
Ausgabebitmap-Wachstum X StandardDeviation (DIPs) * 6 * ((User DPI) / 96) * cos(Angle))
Ausgabebitmap-Wachstum Y StandardDeviation (DIPs) * 6 * ((User DPI) / 96) * sin(Angle))

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-