Dispose di Image non rilascia le risorse

domenica 06 febbraio 2011 - 12.15
Tag Elenco Tags  C#  |  .NET 3.5  |  Windows XP  |  Visual Studio 2008

ysdemarc Profilo | Expert

Ciao,
in pratica leggo delle immagini e devo creare da queste dei multi tiff

faccio qualcosa del genere
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


come risolvo?

ho provato a caricare il file con FromStream passando lo stream piuttosto che usare il FromFile è tutto va bene, però se la carico con FromStream mi crea un ERRORE GENERICO GDI+ al salvataggio del tiff. Quindi lìho abbandonata come strada.

Sono disperato.. qualche suggerimento?

Vincenzo
Programmatore sbilenco

luigidibiasi Profilo | Guru

Se togli quel clone e usi dispose rimane ancora in uso?
Luigi Di Biasi


http://www.dibiasi.it/
http://netsell.dibiasi.it - ecomm software -
http://blogs.dotnethell.it/luigidibiasi/

ysdemarc Profilo | Expert

certo. In realtà lo spostamento dei file di input li faccio dopo aver scritto il tif e quindi il dispose lo facevo dopo, ma visto il problema ho pensato di lavorare al clone, ma non cambia nulla.
Ho voluto provare anche a creare una nuova bitmap dal primo img ma l'applicazione rallenta troppo e il file tif viene gigantesco.
Vincenzo
Programmatore sbilenco

ysdemarc Profilo | Expert



Se a qualcuno può servire ecco la soluzione che ho trovato:

public static System.Drawing.Image LoadImageFromFile(string fileName)
{
System.Drawing.Image result = null;
using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
byte[] img;
img = new byte[fileStream.Length];
fileStream.Read(img, 0, img.Length);
fileStream.Close();
result = System.Drawing.Image.FromStream(new MemoryStream(img));
img = null;
}
GC.Collect();
return result;
}

Ciao a tutti
Vincenzo
Programmatore sbilenco
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5