2012-06-26 15 views
11

tengo:Guardar WriteableBitmap al archivo usando WPF

WriteableBitmap bmp; 

que básicamente quiero guardarlo en un archivo en el disco como la siguiente:

C:\bmp.png 

He leído algunos foros que cita a leer :

bmp.Pixels 

y salvar a los píxeles en una Bitmap a continuación, utilizar Bitmap.SaveImage() función. Sin embargo, no puedo acceder a Pixels. Aparentemente mi WriteableBitmap no tiene ninguna propiedad llamada Pixels.

Uso .NET Framework 4.0.

+0

sólo quiero mencionar que 'WriteableBitmap.Pixels' es una propiedad en Silverlight. No está disponible en WPF- –

+0

@AndersGustafsson Gracias por el comentario. No estaba enterado de eso. Aclamaciones. – Sait

Respuesta

27

Use clon de su WriteableBitmap y utilizar esta función de la siguiente manera:

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

Funcionó muy bien, gracias. – Sait

+1

¿Es realmente necesario llamar a 'stream.Close()'? ¿'Dispose()' no hará eso automáticamente? –

Cuestiones relacionadas