2012-06-26 8 views
11

का उपयोग कर फाइल करने के लिए मेरे पास है:सहेजें WriteableBitmap WPF

WriteableBitmap bmp; 

मैं मूल रूप से की तरह डिस्क पर एक फ़ाइल में सहेजना चाहते हैं:

C:\bmp.png 

मैं कुछ मंचों जो पढ़ने के लिए उल्लेख पढ़ा :

bmp.Pixels 

और बचाने के एक Bitmap में उन पिक्सल तो Bitmap.SaveImage() समारोह का उपयोग करें। हालांकि, मैं किसी भी Pixels तक नहीं पहुंच सकता। मेरे WriteableBitmap में Pixels नामक कोई भी संपत्ति नहीं है।

मैं .NET Framework 4.0 का उपयोग करता हूं।

+0

बस ऐसे ही 'WriteableBitmap.Pixels' सिल्वरलाइट में एक संपत्ति है उल्लेख करना चाहते हैं। यह WPF- –

+0

@AndersGustafsson में उपलब्ध नहीं है टिप्पणी के लिए धन्यवाद। मुझे इसके बारे में पता नहीं था। चीयर्स। – Sait

उत्तर

27

अपने WriteableBitmap के क्लोन का प्रयोग करें और नीचे के रूप में इस समारोह का उपयोग करें:

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

यह बहुत अच्छा काम किया, धन्यवाद। – Sait

+1

क्या यह वास्तव में 'stream.Close()' को कॉल करना आवश्यक है? 'स्वचालित रूप से निपटान नहीं करेगा')? –

संबंधित मुद्दे