Estoy trabajando con imágenes de gran tamaño (por ejemplo, 16000x9440 px) y recorté algunas regiones para otras cosas. Estoy recibiendo una excepción "Memoria insuficiente" cuando se crea una nueva instancia de Bitmap:Error de memoria insuficiente al cargar un mapa de bits
using (FileStream fileStream = new FileStream(mapFileResized, FileMode.Open))
{
byte[] data = new byte[fileStream.Length];
fileStream.Read(data, 0, data.Length);
using (MemoryStream memoryStream = new MemoryStream(data))
{
using (Bitmap src = new Bitmap(memoryStream)) // <-- exception
{
tile = new Bitmap(tileWidth, tileHeight, PixelFormat.Format24bppRgb);
tile.SetResolution(src.HorizontalResolution, src.VerticalResolution);
tile.MakeTransparent();
using (Graphics grRect = Graphics.FromImage(tile))
{
grRect.CompositingQuality = CompositingQuality.HighQuality;
grRect.SmoothingMode = SmoothingMode.HighQuality;
grRect.DrawImage(
src,
new RectangleF(0, 0, tileWidth, tileHeight),
rTile,
GraphicsUnit.Pixel
);
}
}
}
}
Cuando uso pequeños tamaños de las imágenes a continuación, todos muy bien el trabajo (por ej 8000x4720 px.).
¿Cómo puedo trabajar con imágenes de gran tamaño?
mosaico PS El mapa de bits está dispuesto en el bloque final.
Saludos cordiales, Alex.
Tiene el mismo problema. –
De acuerdo con la página de arquitectura (http://www.imagemagick.org/script/architecture.php#tera-pixel) ImageMagick puede "leer, procesar o escribir tamaños de imágenes mega, giga o tera-pixel". No he intentado esto sin embargo. –