J'essaie de charger une très grande image (14473x25684), mais je suis confronté à une limite de mémoire.OutofMemoryException - Chargement d'images extrêmement volumineuses
Voici un programme simple pour démontrer le problème:
static void Main(string[] args)
{
string largeimage = @"C:\Temp\test_image.jpg"; // 14473x25684
Image i = Bitmap.FromFile(largeimage); // OutofMemoryException was unhandled
}
Maintenant, je comprends que la question ne concerne pas la quantité de mémoire physique que j'ai, mais plutôt une limitation d'adressage. Y a-t-il quelque chose que je puisse faire pour contourner cette limitation?
L'image est en effet valide et elle s'ouvre correctement dans Photoshop (Taille de la machine virtuelle: 916 Mo) et ACDSee. Aussi, ne pas déranger à Google les dimensions que les dimensions indiquées ne sont pas exactes. :)
Nous vous remercions de votre temps.
J'ai déjà rencontré ça auparavant. D'après ce que je peux dire, c'est le cadre qui donne le coup d'envoi. –
Wow. C'est une grande image. Malheureusement, la classe Bitmap du framework ne couvrira pas vos besoins. Il se peut que vous trouviez la meilleure solution si vous adoptez une approche en bloc, où vous vous chargez vous-même d'assembler l'en-tête bitmap et d'échantillonner les pixels dans une dimension d'image plus gérable. C'est un défi cependant, car cela implique une petite reconstruction de la roue. Je serais surpris si Photoshop et ACDSee chargeaient toute l'image non compressée en mémoire. – kbrimington