2012-06-26 23 views
11

tôi có:Lưu WriteableBitmap nộp sử dụng WPF

WriteableBitmap bmp; 

tôi về cơ bản muốn lưu nó vào một tập tin trên đĩa như sau:

C:\bmp.png 

Tôi đọc một số diễn đàn trong đó đề cập để đọc :

bmp.Pixels 

và lưu các pixel đó vào Bitmap sau đó sử dụng chức năng Bitmap.SaveImage(). Tuy nhiên, tôi không thể truy cập bất kỳ Pixels nào. Apperantly của tôi WriteableBitmap không có bất kỳ tài sản có tên Pixels.

Tôi sử dụng .NET Framework 4.0.

+0

Chỉ muốn đề cập đến rằng 'WriteableBitmap.Pixels' là một tài sản trong Silverlight. Nó không có sẵn trong WPF- –

+0

@AndersGustafsson Cảm ơn bạn đã bình luận. Tôi đã không nhận thức được nó. Chúc mừng. – Sait

Trả lời

27

Sử dụng bản sao của WriteableBitmap bạn và sử dụng chức năng này như sau:

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

Nó hoạt động rất tốt, cảm ơn. – Sait

+1

Có thực sự cần thiết để gọi 'stream.Close()'? Sẽ không vứt bỏ() 'làm điều đó tự động? –

Các vấn đề liên quan