Sto tentando di caricare un'immagine estremamente grande (14473x25684), ma sto vincendo in un limite di memoria.OutofMemoryException - Caricamento di immagini estremamente grandi
Ecco un semplice programma per illustrare il problema:
static void Main(string[] args)
{
string largeimage = @"C:\Temp\test_image.jpg"; // 14473x25684
Image i = Bitmap.FromFile(largeimage); // OutofMemoryException was unhandled
}
Adesso ho capito che il problema non è rilevante per la quantità di memoria fisica che ho, ma piuttosto è una limitazione di indirizzamento. C'è qualcosa che posso fare per aggirare questa limitazione?
L'immagine è effettivamente valida e si apre bene in Photoshop (VM Size: 916 MB) e ACDSee. Inoltre non infastidire Google le dimensioni in quanto le dimensioni elencate non sono esatte. :)
Grazie per il vostro tempo.
Mi sono imbattuto in questo prima. Da quello che posso dire è la struttura che si sta facendo da parte. –
Wow. Questa è una grande immagine. Sfortunatamente, la classe Bitmap framework non coprirà le tue esigenze. Potresti scoprire che prendere un approccio chunked, dove fai da solo l'intestazione della bitmap e campionare i pixel in una dimensione dell'immagine più gestibile è la soluzione migliore. È una sfida però, poiché comporta una piccola ricostruzione delle ruote. Sarei sorpreso se Photoshop e ACDSee caricassero in memoria l'intera immagine non compressa. – kbrimington