Escribo un código que lee una imagen png del archivo y se muestra con control.
Quiero leer la imagen de la corriente y ajusteexcepción de falta de memoria cuando use control.BackgroundImage = Image.FromStream (memStream);
control.BackgroundImage = Image.FromStream(memStream);
pero cuando uso este código, se producen "sin memoria" excepción. pero cuando utilice
control.Image = Image.FromStream(memStream);
o
control.BackgroundImage = Image.FromFile(fileSource);
, que es el trabajo.
el tamaño del archivo de imagen es de 5KB.
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
}
}
}
creo que un error en .NET Framework. por favor me ayuda?
¿cuál parte es el problema? Le sugiero que coloque primero la imagen en una variable, luego asigne en la segunda operación. ¿Qué tan grande es la imagen? El tamaño del archivo 5ggb puede ser de 50,000x50,000 píxeles;) – TomTom
Las imágenes informan "Sin memoria" para cualquier cosa que salga mal. –
Al igual que dijo Henk, GDI + (y por lo tanto 'System.Drawing') arroja errores de OutOfMemory en muchos casos donde no está realmente fuera de la memoria, como los parámetros no válidos. Supongo que este es uno de ellos. – CodesInChaos