2010-05-24 20 views
25

WPF में, System.Windows.Clipboard.getImage() फ़ंक्शन BitmapSource ऑब्जेक्ट देता है। WinForms पृष्ठभूमि से आने वाले WPF में नौसिखिया के रूप में, यह मुझे स्पष्ट नहीं करता कि इस छवि को फ़ाइल में कैसे सहेजना है। मुझे क्या कदम उठाने चाहिए?एक WPF छवि को फ़ाइल में सहेजने के लिए कैसे करें

उत्तर

56

आपको एक एन्कोडर (BitmapEncoder का उप-वर्ग) का उपयोग करने की आवश्यकता है। उदाहरण के लिए, PNG प्रारूप में सहेजने के लिए, आप ऐसा कुछ करना:

public static void SaveClipboardImageToFile(string filePath) 
{ 
    var image = Clipboard.GetImage(); 
    using (var fileStream = new FileStream(filePath, FileMode.Create)) 
    { 
     BitmapEncoder encoder = new PngBitmapEncoder(); 
     encoder.Frames.Add(BitmapFrame.Create(image)); 
     encoder.Save(fileStream); 
    } 
} 

वैसे, ध्यान दें यह है कि a bug in Clipboard.GetImage। अगर आप छवि को सिर्फ फाइल में सहेजते हैं तो यह कोई समस्या नहीं होनी चाहिए, लेकिन अगर आप इसे प्रदर्शित करना चाहते हैं तो यह होगा।


संपादित करें: बग ऊपर उल्लेख किया 4.0

+0

इस में लगाई जानी मेरी मशीन पर संकलन नहीं करता है लगता है। बिटमैपफ्रेम.क्रेट पैरामीटर यूआरआई या स्ट्रीम हैं, छवि नहीं: \ –

+0

@IgnacioSolerGarcia यह विधि WPF में मौजूद है: https://msdn.microsoft.com/en-us/library/ms615993(v=vs.110).aspx। आप किस प्रकार का ऐप बना रहे हैं? –

+0

आप सही हैं, क्षमा करें। मैंने WinForms के साथ अवधारणा ऐप का तेज़ सबूत किया। –

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