Tengo una aplicación escrita usando .NET 3.5 SP1 que descarga imágenes de un sitio externo y las muestra a los usuarios finales. En raras ocasiones, mis usuarios están experimentando errores de OutOfMemory porque están descargando imágenes enormes. Algunas veces, los datos brutos asociados con estas imágenes son grandes, pero más a menudo, las dimensiones de las imágenes son enormes. Me doy cuenta de que nunca podré evitar el hecho de que estos errores OOM se producen para imágenes particulares. Sería MUY útil, sin embargo, si de alguna manera pudiera determinar si cargar una imagen en particular daría lugar a un problema OOM antes de intentar cargar la imagen.Cómo detectar si la carga de una imagen generará una excepción OutOfMemory en .NET?
Los datos de las imágenes se cargan en un Stream y luego la imagen se convierte en System.Drawing.Image haciendo una llamada a System.Drawing.Image.FromStream (stream). No tengo la opción de almacenar estas imágenes en el disco primero. Deben cargarse a través de la memoria.
Si alguien tiene alguna sugerencia o sugerencia que me permita detectar que cargar una imagen daría lugar a una excepción de OOM, lo agradecería mucho.
"Los datos de las imágenes se cargan en una secuencia" ... por arte de magia, ¿o cómo? – Will
@Will - "descarga imágenes de un sitio externo" –
@Joel para que obtenga una secuencia, luego alimenta esa secuencia en un flujo de memoria, y luego utiliza esa secuencia con una imagen? ¿Y se está preguntando por qué se está quedando sin memoria? ¿Por qué no usar el flujo original y cortar al intermediario? ¿Soy el loco? – Will