2012-06-26 12 views
11

ho:Salva WriteableBitmap su file utilizzando WPF

WriteableBitmap bmp; 

Io fondamentalmente voglio salvare in un file sul disco simile al seguente:

C:\bmp.png 

Ho letto alcuni forum che menziona a leggere :

bmp.Pixels 

e salvare quei pixel in un Bitmap quindi utilizzare Bitmap.SaveImage() funzione. Tuttavia, non riesco ad accedere a qualsiasi Pixels. Il mio WriteableBitmap non ha alcuna proprietà denominata Pixels.

Utilizzo .NET Framework 4.0.

+0

Voglio solo ricordare che 'WriteableBitmap.Pixels' è una struttura in Silverlight. Non è disponibile in WPF- –

+0

@AndersGustafsson Grazie per il commento. Non ne ero consapevole. Saluti. – Sait

risposta

27

Utilizzare clone del vostro WriteableBitmap e utilizzare questa funzione come di seguito:

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

Ha funzionato alla grande, grazie. – Sait

+1

È davvero necessario chiamare 'stream.Close()'? 'Dispose() non lo farà automaticamente? –