View Full Version : [C#] Salvare immagine -> Errore generico GDI+
Diego_Armando
05-03-2009, 08:34
Ciao a tutti..
Sto impazzendo..
Ho un'oggetto di tipo Image. Vorrei salvare l'immagine sul disco fisso. Apparentemente sembra un'operazione banale.
Per farlo uso il metodo Save della classe Image.
Image.Save(@"C:\img.jpg");
Il metodo va però in errore e restituisce il seguente messaggio:
"Errore generico GDI+"
Uso Windows Vista.
Qualcuno mi può aiutare?
:confused:
Ciao a tutti..
Sto impazzendo..
Ho un'oggetto di tipo Image. Vorrei salvare l'immagine sul disco fisso. Apparentemente sembra un'operazione banale.
Per farlo uso il metodo Save della classe Image.
Image.Save(@"C:\img.jpg");
Il metodo va però in errore e restituisce il seguente messaggio:
"Errore generico GDI+"
Uso Windows Vista.
Qualcuno mi può aiutare?
:confused:
Diritti di scrittura?
Comunque metti un try-catch attorno, e leggi il messaggio d'errore esteso e le innerexception con il debugger, magari trovi qualcosa in piu'.
Image.Save(@"C:\img.jpg");
Il metodo va però in errore e restituisce il seguente messaggio:
"Errore generico GDI+"
Uso Windows Vista.
E' lo stesso errore sollevato quando si apre un'immagine in una PictureBox con il metodo "diretto", e si cerca di salvarla nello stesso modo.
Molto comodo all'apparenza, ma poi ti tradisce... :D
Il fatto è che l'applicazione blocca l'immagine caricata da disco, ed ogni tentativo di sovrascriverla/modificarla o eliminarla produce un errore di risorsa condivisa con altro processo, o anche questo "Errore Generico GDI+".
Mi è capitato di recente con la PictureBox. Ho risolto così :
//Caricamento indiretto :
System.IO.FileStream FS;
FS = new System.IO.FileStream(percorso + "test.bmp", System.IO.FileMode.Open, System.IO.FileAccess.Read);
pcb_immagine.Image = Image.FromStream(FS);
FS.Close();
//Salvataggio :
Bitmap nuovaBmp = new Bitmap(pcb_immagine.Image);
nuovaBmp.Save(percorso + "test.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
nuovaBmp.Dispose();
Penso che con Image sia lo stesso identico discorso... ;)
Diego_Armando
05-03-2009, 13:03
E' lo stesso errore sollevato quando si apre un'immagine in una PictureBox con il metodo "diretto", e si cerca di salvarla nello stesso modo.
Molto comodo all'apparenza, ma poi ti tradisce... :D
Il fatto è che l'applicazione blocca l'immagine caricata da disco, ed ogni tentativo di sovrascriverla/modificarla o eliminarla produce un errore di risorsa condivisa con altro processo, o anche questo "Errore Generico GDI+".
Mi è capitato di recente con la PictureBox. Ho risolto così :
//Caricamento indiretto :
System.IO.FileStream FS;
FS = new System.IO.FileStream(percorso + "test.bmp", System.IO.FileMode.Open, System.IO.FileAccess.Read);
pcb_immagine.Image = Image.FromStream(FS);
FS.Close();
//Salvataggio :
Bitmap nuovaBmp = new Bitmap(pcb_immagine.Image);
nuovaBmp.Save(percorso + "test.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
nuovaBmp.Dispose();
Penso che con Image sia lo stesso identico discorso... ;)
Il problema è che l'immagine non la carico dal disco ma proviene dal Web quindi non ci sono problemi di lock sull'immagine.
Non so dove sbattere la testa...AIUTO!!!!
Evidentemente cerchi di salvare l'immagine prima ancora che il processo di download sia terminato, da qui l'errore GDI+.
Beh, ma la soluzione l'avevi già !
Ti avevo già postato qui :
http://www.hwupgrade.it/forum/showthread.php?t=1938366
un codice che funziona non solo per le immagini, ma per qualsiasi file.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.