2009-08-01 12 views
2

Ich möchte einen Schlagschatten zu einer Bilddatei hinzufügen. Was ist der beste Weg, das zu tun? Ich habe über das Erstellen eines WPF-Bildsteuerelements und das Hinzufügen eines Bitmap-Effekts nachgedacht. Aber wie kann ich das Ergebnis in einer Datei speichern?Draw Schlagschatten

Danke, Eric

+0

Beachten Sie, dass BitmapEffect veraltet ist. Verwenden Sie stattdessen Effekt. –

Antwort

2

können Sie verwenden und Rendertargetbitmap einen Encoder, dies zu tun. Encoder kann Png, Jpeg usw. sein. Unter dem Code imgControl steht Ihre Bildkontrolle. Da es sich jedoch um einen Bitmap-Effekt handelt, müssen Sie dieses Image möglicherweise in ein Raster einfügen und einen entsprechenden Rand entsprechend dem Dropshadow angeben. Verwenden Sie dann anstelle von imgControl das Raster im folgenden Code.

double Height = imgControl.ActualHeight; 
double Width = imgControl.ActualWidth; 

RenderTargetBitmap bmp = new RenderTargetBitmap((int)Width, (int)Height, 
               96, 96, PixelFormats.Pbgra32); 
bmp.Render(imgControl); 

BitmapEncoder encoder = new JpegBitmapEncoder(); 

encoder.Frames.Add(BitmapFrame.Create(bmp)); 

using (Stream stream = File.Create("Yourfile.jpeg")) 
{ 
    encoder.Save(stream); 
} 
+0

vielen dank !! :) – eWolf