Logo UGIdotNET

Discussione 'Errore di memoria caricando un file gif'

# Pubblicato il 21 gen 2004 12.27 - Rispondi
Roberto Persico
Errore di memoria caricando un file gif
Ho necessità di visualizzare in una picturebox (o altro controlla che me lo permetta) un file .GIF (2472x1749,95kb). Si tratta di un documento scannerizzato in bianco e nero.

Ho provato sia "Image.FromFile(fileName)" che "new Bitmap(fileName)", ma mi ritornano sempre "Out of Memory" (che probabilmente nasconde un errore di altra natura). Anche a Design time ho provato ad assegnare l'immagine alla picturebox e mi ritorna un errore di parametro non valido.

Con MsPaint:
Convertendo il file da GIF a BMP, funziona.
Diminuendo le dimensioni della metà e mantenendo il file GIF, funziona.


Grazie,
Roberto

# Pubblicato il 22 gen 2004 0.15 - Rispondi
Raffaele Rialdi [MVP]
Re: Errore di memoria caricando un file gif

> Ho necessità di visualizzare in una picturebox (o altro controlla che me
lo
> permetta) un file .GIF (2472x1749,95kb). Si tratta di un documento
> scannerizzato in bianco e nero.
[...]
> Con MsPaint:
> Convertendo il file da GIF a BMP, funziona.
> Diminuendo le dimensioni della metà e mantenendo il file GIF, funziona.

Tieni conto che in realtà in memoria non occupa solo 95Kb. Quella è la
dimensione compressa.
Il GIF usa la comressione LZH che è molto potente (anche se png è meglio).

Visto che i gif hanno una palette di 256 colori per pixel (quindi ogni pixel
occupa un byte), in memoria occuperà:
2472 x 1749 byte = 4'323'528 byte

Diventa già più ragionevole che ti dia un errore anche se non conosco i
limiti della picturebox.
Sicuramente vale la pena ridurre le dimensioni del file (per esempio con
GetThumbailImage) visto che non riuscirai mai a mostrarla al pieno della sua
risoluzione.

--
Raffaele Rialdi
Microsoft .NET MVP http://mvp.support.microsoft.com - http://italy.mvps.org
UGIdotNET - User Group Italiano .NET http://www.ugidotnet.org
Weblog: http://www.ugidotnet.org/2082.blog



----------------------
Questo messaggio è stato postato da microsoft.public.it.dotnet.vb.
# Pubblicato il 23 gen 2004 10.00 - Rispondi
Roberto Persico
Re: Errore di memoria caricando un file gif
Grazie della risposta, ma purtroppo non ha funzionato nemmeno il thumbnail.
Ciò che mi innervosisce è che il buon vecchio (?) vb6 apre la stessa gif con facilità e mi aspettavo di fare altrettanto in vb.NET.

Se ci sono altre idee....

Roberto
# Pubblicato il 24 gen 2004 14.11 - Rispondi
Raffaele Rialdi [MVP]
Re: Errore di memoria caricando un file gif

> Grazie della risposta, ma purtroppo non ha funzionato nemmeno il
thumbnail.
> Ciò che mi innervosisce è che il buon vecchio (?) vb6 apre la stessa gif
con
> facilità e mi aspettavo di fare altrettanto in vb.NET.
>
> Se ci sono altre idee....
Controlla che gli headers del gif siano ecritti giusti.
Per esempio puoi aprire l'immagine in un editor di immagini e risalvarlo
sovrascrivendolo.

--
Raffaele Rialdi
Microsoft .NET MVP http://mvp.support.microsoft.com - http://italy.mvps.org
UGIdotNET - User Group Italiano .NET http://www.ugidotnet.org
Weblog: http://www.ugidotnet.org/2082.blog



----------------------
Questo messaggio è stato postato da microsoft.public.it.dotnet.vb.

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185