2012-06-26 8 views
11

ich habe:Speichern Writeablebitmap Datei WPF

WriteableBitmap bmp; 

Ich möchte im Grunde in eine Datei auf der Festplatte speichern, wie folgt aus:

C:\bmp.png 

ich ein paar Foren gelesen, die lesen Erwähnungen :

bmp.Pixels 

und jene Pixel in eine Bitmap dann Bitmap.SaveImage() Funktion nutzen speichern. Ich kann jedoch auf keine Pixels zugreifen. Apperently meine WriteableBitmap hat keine Eigenschaft mit dem Namen Pixels.

Ich benutze .NET Framework 4.0.

+0

Nur erwähnen möchte, dass 'WriteableBitmap.Pixels' eine Eigenschaft in Silverlight ist. Es ist nicht verfügbar in WPF- –

+0

@andersGustafsson Danke für den Kommentar. Ich war mir dessen nicht bewusst. Prost. – Sait

Antwort

27

Ihre Writeablebitmap des Klons verwenden und diese Funktion verwenden, wie unten:

CreateThumbnail(filename, _frontBitmap.Clone()); 

...

void CreateThumbnail(string filename, BitmapSource image5) 
{ 
    if (filename != string.Empty) 
    { 
     using (FileStream stream5 = new FileStream(filename, FileMode.Create)) 
     { 
      PngBitmapEncoder encoder5 = new PngBitmapEncoder(); 
      encoder5.Frames.Add(BitmapFrame.Create(image5)); 
      encoder5.Save(stream5); 
     } 
    } 
} 
+0

Es hat super funktioniert, danke. – Sait

+1

Ist es wirklich notwendig, 'stream.Close()' aufzurufen? Wird 'Dispose()' das nicht automatisch tun? –