Frage

Ich habe eine WPF-Bildsteuerung mit angebautem Unschärfe-Effekt. Gibt es eine Möglichkeit, das Bild (mit Unschärfe) zu speichern, ohne Rendertargetbitmap mit?

Danke.

UPDATE: Ich bin jetzt mit neuen benutzerdefinierten Effekt, der von System.Windows.Media.Effects.ShaderEffect ableitet. Ich möchte mein Bild mit Shader-Effekt angewendet speichern.

War es hilfreich?

Lösung

die einzige Möglichkeit, die Bitmap machen kann, ist Rendertargetbitmap verwendet wird.

Haben Sie einen Blick auf dieses Beispiel:

BitmapSource bitmap=GetYourBitmap();
Rectangle r=new Rectangle();
r.Background=new ImageBrush(bitmap);
r.Effect=yourEffect;

Size sz=new Size(bitmap.PixelWidth, bitmap.PixelHeight);
r.Measure(sz);
r.Arrange(new Rect(sz);

var rtb=new RenderTargetBitmap();
rtb.Render(r);
return rtb;//here is your bitmap with effects applied

Hope, das hilft

Andere Tipps

Ich weiß, dass dies eine alte Frage ist ... aber ich dachte, dass ich Menschen zu Jamie Rodriguez Beitrag hinweisen würde ( http://blogs.msdn.com/jaimer/archive/2009/07/03/rendertargetbitmap-tips.aspx ) zu diesem Thema.

hatte ich eine Situation, in der Verwendung von Rendertargetbitmap wurde in einem leeren Bild führt ... und Jamies Post war die Antwort für mich.

Hoffe, es hilft jemand anderes zu.

Das ist etwas, was ich auch wollte. Nach dieser: http: // social.msdn.microsoft.com/Forums/en/wpfprerelease/thread/e2ebf264-e087-4bfe-a69b-24c884675c80 Rendertargetbitmap nicht verwenden HW (GPU) zu machen, nur Software. Wie schade.

KV

Da der Shader-Effekt per Definition auf der Grafikkarte, die einzige Möglichkeit, angelegt ist, können Sie eine Kopie davon im Hauptspeicher zu erhalten, ist es von Bildschirmspeichern zu greifen. So Rendertargetbitmap ist Ihre Lösung. Gibt es einen besonderen Grund, warum Sie wollte es vermeiden?

Hier gehen Sie: http://perspectivefx.codeplex.com/ und alle von GPU geleistete Arbeit

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top