Memory exception when using control.BackgroundImage = Image.FromStream (memStream);

I am writing code that reads a png image from a file and shows it using control.
I want to read an image from a stream and set

control.BackgroundImage = Image.FromStream(memStream);

but when using this code, an out-of-memory exception occurs . but when using

control.Image = Image.FromStream(memStream);

or

control.BackgroundImage = Image.FromFile(fileSource);

that is, work.

The image file size is 5 KB.

 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
  }
  }
 }

I think the error is in the .net framework. please help me?

+5
source share
2 answers

DeCaf. GDI + . , , , - . Bitmap Image.FromFile(), GDI + . , . , . , .

, MemoryStream. , GDI + - , . , Dispose() . , , , . , , Application.Run(). , GDI + . , GDI +, , .

, MemoryStream.Dispose(). Dispose . , . . , . , , MemoryStream . GDI + .

using, MemoryStream . , . , .

+6

Image.FromStream MSDN:

.

, using MemoryStream, .

, MemoryStream, Image, , Dispose() GC .

, , , . , .

+7

All Articles