2012-06-26 8 views
11

kullanarak dosya Ben:kaydet WriteableBitmap WPF

WriteableBitmap bmp; 

Ben ikonların gibi diskteki bir dosyaya kaydetmek istediğiniz aşağıdadır:

C:\bmp.png 

Okumayı bahseder takım forumlar okumak : bir Bitmap içine

bmp.Pixels 

ve kaydedin bu pikseller daha sonra Bitmap.SaveImage() işlevini kullanın. Ancak, herhangi bir Pixels erişemiyorum. Benim WriteableBitmap benim Pixels adında herhangi bir özelliğe sahip değil.

.NET Framework 4.0 kullanıyorum.

+0

Sadece 'WriteableBitmap.Pixels' Silverlight bir özellik olduğunu belirtmek istiyoruz. WPF- –

+0

@AndersGustafsson'ta mevcut değildir. Yorumunuz için teşekkür ederiz. Farkında değildim. Şerefe. – Sait

cevap

27

sizin WriteableBitmap en klonu kullanın ve aşağıda bu işlevi kullanın:

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

Harika çalıştı, teşekkürler. – Sait

+1

Gerçekten stream.Close() 'çağırmak gerekli mi? Dispose() 'ı otomatik olarak yapmaz mı? –