दिलचस्प पोस्ट
प्रकरण अभिव्यक्ति बनाम केस स्टेटमेंट जांचें कि कोई संग्रहीत कार्यविधि में कोई पैरामीटर रिक्त या खाली है या नहीं जावा स्ट्रिंग्स: तुलना करें () बनाम बराबर () "यह ऐप चाहूंगा: ऑफ़लाइन पहुंच" जब access_type = online एंड्रॉइड में आंतरिक मेमोरी से बिटमैप्स / इमेज सहेजना और पढ़ना आईफ़ोन एप में सर्वर से एक वीडियो फ़ाइल बजाना कैसे rowNum को कॉलम की तरह sqlite IPHONE में प्राप्त करने के लिए Google Play सेवाएं लाइब्रेरी अपडेट और अनुपलब्ध प्रतीक @ पूर्णांक / google_play_services_version त्रुटि :: एपीके के पैकेजिंग के दौरान डुप्लिकेट फ़ाइलें C ++ में अपने नाम (std :: string) द्वारा फ़ंक्शन कैसे कॉल करें? MSI को स्थापित करने के लिए बैच स्क्रिप्ट NSString उदाहरण NSCFString के रूप में अपनी कक्षा की रिपोर्ट करता है सर्वर से पहले AJAX भेजें एक्लिप्स में एंड्रॉइड फेसबुक एसडीके 4 TypeError: मॉड्यूल .__ init __ () में अधिकतम 2 तर्क (3 दिए गए) लेता है

बिटमैप इमेज बाइट

मेरे पास एक BitmapImage जिसका उपयोग मैं एक WPF अनुप्रयोग में कर रहा हूं, मैं बाद में इसे एक बाइट सरणी के रूप में डेटाबेस में सहेजना चाहता हूं (मुझे लगता है कि यह सबसे अच्छा तरीका है), मैं यह रूपांतरण कैसे कर सकता हूं?

या, वैकल्पिक रूप से, कोई डेटा संग्रह करने के लिए BitmapSource (या उसके किसी भी आधार वर्ग, BitmapSource या BitmapSource ) को सहेजने का एक बेहतर तरीका है?

Solutions Collecting From Web of "बिटमैप इमेज बाइट"

एक बाइट [] में परिवर्तित करने के लिए आप एक MemoryStream का उपयोग कर सकते हैं:

 byte[] data; JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(bitmapImage)); using(MemoryStream ms = new MemoryStream()) { encoder.Save(ms); data = ms.ToArray(); } 

JpegBitmapEncoder के बजाय आप जो भी बिटमॅप एन्कोडर का उपयोग कर सकते हैं, कैस्परऑन ने कहा है।

यदि आप एमएस एसक्यूएल का प्रयोग कर रहे हैं तो आप एक image उपयोग कर सकते हैं- कॉलम के रूप में एमएस एसक्यूएल डाटाटिप का समर्थन करता है, लेकिन आपको किसी भी तरह बिटमैप image को बदलने की जरूरत होगी

आपको BitmapEncoder (जैसे कि BmpBitmapEncoder ) से प्राप्त एक क्लास का एक उदाहरण देना होगा और BitmapSource को Stream सहेजने के लिए विधि Save

आप उस प्रारूप के आधार पर विशिष्ट एन्कोडर चुनते हैं, जिसमें आप छवि को सहेजना चाहते हैं।

इसे MemoryStream लिखें, फिर आप वहां से बाइट्स तक पहुंच सकते हैं। कुछ इस तरह थोड़े:

 public Byte[] ImageToByte(BitmapImage imageSource) { Stream stream = imageSource.StreamSource; Byte[] buffer = null; if (stream != null && stream.Length > 0) { using (BinaryReader br = new BinaryReader(stream)) { buffer = br.ReadBytes((Int32)stream.Length); } } return buffer; } 

बस एक MemoryStream का उपयोग करें

 byte[] data = null; using(MemoryStream ms = new MemoryStream()) { bitmapImage.Save(ms); data = ms.ToArray(); }
byte[] data = null; using(MemoryStream ms = new MemoryStream()) { bitmapImage.Save(ms); data = ms.ToArray(); }