2012-06-26 21 views
11

mam:Zapisz WriteableBitmap do pliku przy użyciu WPF

WriteableBitmap bmp; 

I w zasadzie chcesz zapisać go do pliku na dysku, jak następuje:

C:\bmp.png 

Czytałem kilka forów którym wspomina czytać :

bmp.Pixels 

i zapisać te piksele w Bitmap następnie użyć Bitmap.SaveImage() funkcję. Nie mogę jednak uzyskać dostępu do żadnego Pixels. Wyraźnie mój WriteableBitmap nie ma żadnej właściwości o nazwie Pixels.

Używam .NET Framework 4.0.

+0

prostu chcę wspomnieć, że 'WriteableBitmap.Pixels' jest nieruchomość w Silverlight. Nie jest dostępny w WPF- –

+0

@AndersGustafsson Dzięki za komentarz. Nie wiedziałem o tym. Twoje zdrowie. – Sait

Odpowiedz

27

pomocą klonowania WriteableBitmap i korzystać z tej funkcji, jak poniżej:

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

Udało się świetnie, dzięki. – Sait

+1

Czy naprawdę konieczne jest wywołanie metody 'stream.Close()'? Czy "Dispose()" nie zrobi tego automatycznie? –

Powiązane problemy