2011-12-29 18 views
18

क्या मुझे मेमोरी स्ट्रीम या मेमोरी स्ट्रीम का ऑब्जेक्ट आवंटित करना चाहिए: क्या यह ठीक है?एक बिटमैप को मेमोरीस्ट्रीम में सहेजना

MemoryStream memoryStream = new MemoryStream(); 
bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); 

मैं MemoryStream आकार को परिभाषित करने की जरूरत है, तो मैं इसे कैसे बिटमैप से मिल सकता है?

+3

यह ठीक होना चाहिए; क्या आप विशिष्ट समस्याओं का सामना कर रहे हैं? –

उत्तर

12

.NET एक प्रबंधित वातावरण है: विशेष रूप से, स्मृति आवंटन आमतौर पर .NET रनटाइम द्वारा आपकी ओर से प्रबंधित किया जाता है। आपको आमतौर पर स्मृति को आवंटित करने की आवश्यकता नहीं होती है।

कभी-कभी, आपको Close() या Dispose() का उपयोग कर स्मृति के साथ समाप्त होने पर रनटाइम को सूचित करने की आवश्यकता होती है। using कथन का उपयोग ऐसे संसाधन को लपेटने के लिए किया जा सकता है जैसे MemoryStream रनटाइम को बताने के लिए कि स्मृति को पुनः प्राप्त किया जा सकता है।

+0

धन्यवाद, अब मुझे लगता है कि यह स्पष्ट है। मैंने काम के दौरान अपनी कक्षा में स्ट्रीम को सहेजने की योजना बनाई, लेकिन ऐसा लगता है कि मुझे इसे केवल प्रक्रिया के दौरान ही सहेजना चाहिए और इसे हमेशा अपना ऐप लाइव रखने के लिए नहीं रखना चाहिए। मैंने सोचा कि तस्वीर को बिटमैप के बजाय मेमोरीस्ट्रीम के रूप में सहेजना बेहतर है। – Joseph

6

आपको स्मृति को पूर्ववत करने की आवश्यकता नहीं है।

आप memoryStream.Length के साथ बाद में आकार प्राप्त कर सकते हैं।


के बाद आप किया है कि आप अपने memoryStream साथ की जरूरत है, यह निपटान के लिए सुनिश्चित हो (या एक using बयान में यह सब लपेट)।

+0

धन्यवाद, अब मुझे लगता है कि यह स्पष्ट है। मैंने काम के दौरान अपनी कक्षा में स्ट्रीम को सहेजने की योजना बनाई, लेकिन ऐसा लगता है कि मुझे इसे केवल प्रक्रिया के दौरान ही सहेजना चाहिए और इसे हमेशा अपना ऐप लाइव रखने के लिए नहीं रखना चाहिए। मैंने सोचा कि तस्वीर को बिटमैप के बजाय मेमोरीस्ट्रीम के रूप में सहेजना बेहतर है। – Joseph

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