मैं एक कोड लिखता हूं जो फ़ाइल से पीएनजी छवि पढ़ता है और नियंत्रण के साथ दिखाता है।
मैं धारा से छवि को पढ़ने चाहते हैं और सेटमेमोरी अपवाद से बाहर। बैकग्राउंड इमेज = छवि। फ्रॉमस्ट्रीम (मेमस्ट्रीम);
control.BackgroundImage = Image.FromStream(memStream);
लेकिन जब उपयोग इस कोड, तब हो अपवाद "स्मृति से बाहर"। लेकिन जब
control.Image = Image.FromStream(memStream);
या
control.BackgroundImage = Image.FromFile(fileSource);
उपयोग करते हैं, कि काम है।
छवि फ़ाइल का आकार 5 केबी है।
if (System.IO.File.Exists(imgSource))
{
using (FileStream localFileStream = new FileStream(imgSource, FileMode.Open))
{
using (MemoryStream memStream = new MemoryStream())
{
int bytesRead;
byte[] buffer = new byte[1024];
while ((bytesRead = localFileStream.Read(buffer, 0, buffer.Length)) > 0)
{
memStream.Write(buffer, 0, bytesRead);
}
retIMG = Image.FromStream(memStream);
pictureBox1.Image = retIMG; // is work
label1.Image = retIMG; // is work
button1.Image = retIMG; // is work
button1.BackgroundImage = retIMG; // don't work
groupBox1.BackgroundImage = retIMG; // don't work
panel1.BackgroundImage = retIMG; // don't work
}
}
}
मुझे लगता है कि नेट फ्रेमवर्क में एक बग। कृपया मेरी मदद करें?
यह हिस्सा समस्या है? मेरा सुझाव है कि आप छवि को पहले एक चर में रखें, फिर दूसरे ऑपरेशन पर असाइन करें। छवि कितनी बड़ी है? 5ggb फ़ाइल का आकार 50.000x50.000 पिक्सेल हो सकता है;) – TomTom
छवियां गलत होने वाली किसी भी चीज के लिए "मेमोरी आउट" की रिपोर्ट करती हैं। –
जैसे ही हेनक ने कहा, जीडीआई + (और इस प्रकार 'सिस्टम। ड्रॉइंग') कई मामलों में आउटऑफमेमरी त्रुटियों को फेंकता है जहां यह वास्तव में स्मृति से बाहर नहीं है, जैसे अमान्य पैरामीटर। मुझे लगता है कि यह उनमें से एक है। – CodesInChaos