Covertire file.tif in .jpg

giovedì 28 settembre 2006 - 09.31

DaVbNet Profilo | Newbie

Buongiorno a tutti,
io ho la necessità di convertire dinamicamente le foto dal formato .tif o .bmp in .jpg.
Visto che non sono molto esperto di oggetti di grafica (Image, Bitmap) qualcuno mi può dare qualche consiglio?
Il mio obiettivo è di inviare al report le immagini sempre in formato .jpg anche se sul disco sono salvati in altri formati.

Grazie anticipatamente

Mark.net Profilo | Newbie

Se posso vorrei dare un ulteriore suggerimento. Il codice scritto da coach è più che corretto, l'unico inconveniente è che le immaggini convertite non danno un risultato soddisfacente dal punto di vista della qualità.
Di solito io preferisco, in questi casi, usare queste funzioni.

function Converti()
{
using(Bitmap bitmini = new Bitmap("TiffImagePath"))
{
bitmini.Save(DestinationFileName, GetImageCodecInfo(ImageFormat.Jpg), getParamsQuality(90L));
}
}

funcrion ImageCodecInfo GetImageCodecInfo(ImageFormat format)
{
ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();

foreach (ImageCodecInfo icf in encoders)
{
if (icf.FormatID == format.Guid)
{
return icf;
}
}
return null;
}
}

function EncoderParameters getParamsQuality(long val)
{
EncoderParameters param = new EncoderParameters(1);
param.Param[0] = new EncoderParameter(Encoder.Quality, val);
return param;
}

dove 90L (è un long ricordalo) è la qualità della immagine jpg finale
Spero di esserti stato utile.
Marco
Non hai veramente capito qualcosa finchè non sei in grado di spiefarla ad un bambino di 6 anni. (A. Einstein)

DaVbNet Profilo | Newbie

Grazie per le risposte, ma sono fermo al punto di partenza... ovvero il codice mi genera un'eccezione sulla seguente riga :

bmp.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg)

l'eccezione è:

Informazioni aggiuntive: Errore generico in GDI+.
Unhandled Exception: System.Runtime.InteropServices.ExternalException: Errore generico in GDI+.

Ho utilizzato "System.Drawing.Imaging.ImageFormat" perchè sto programmando in Vb Net (ho clamorosamente dimenticato di dirlo) e il metodo "Save" prevede di utilizzare questo tipo anzichè "CrystalDecisions.Shared.ImageFormat"

Qual è il problema?

blood Profilo | Senior Member

>Grazie per le risposte, ma sono fermo al punto di partenza...
>ovvero il codice mi genera un'eccezione sulla seguente riga :
>
>bmp.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg)
>
>l'eccezione è:
>
>Informazioni aggiuntive: Errore generico in GDI+.
>Unhandled Exception: System.Runtime.InteropServices.ExternalException:
>Errore generico in GDI+.
>
>Ho utilizzato "System.Drawing.Imaging.ImageFormat" perchè sto
>programmando in Vb Net (ho clamorosamente dimenticato di dirlo)
>e il metodo "Save" prevede di utilizzare questo tipo anzichè
>"CrystalDecisions.Shared.ImageFormat"
>
>Qual è il problema?
>

Dim asd As New Bitmap("C:\asd.bmp")
asd.Save("C:\ciccio.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

a me così funzione in vs 2003

---------------
Piscopo Paolo

:: wD @ IRCnet :: .NET wannabe 8-)

DaVbNet Profilo | Newbie

Scusate ma non riesco a risolvere il problema.

Questo metodo non funziona con i file .Tif

il codice
Dim asd As New Bitmap("C:\foto.tif")
asd.Save("C:\miafoto.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

genera la seguente eccezione:

Eccezione non gestita di tipo "System.ArgumentException" in system.drawing.dll

Informazioni aggiuntive: Utilizzato parametro non valido.


Al contrario funziona con file .bmp

blood Profilo | Senior Member

ahhh con i .tif...tu avevi parlato di bitmap

edit: ho appena provato e funziona...sicuro che la tua è una .tif corretta?? poi: in che ambiente programmi e che framework hai installato?

DaVbNet Profilo | Newbie

A te funziona anche con le immagini .tif? Bel mistero..

Cosa intendi per .tif corretta? è un'immagine che windows apre normalmente.......

Io uso Visual Studio 2003 e programmo in vb.net
Framework 1.1

blood Profilo | Senior Member

>A te funziona anche con le immagini .tif? Bel mistero..
>
>Cosa intendi per .tif corretta? è un'immagine che windows apre
>normalmente.......
>
>Io uso Visual Studio 2003 e programmo in vb.net
>Framework 1.1

hai la mia stessa configurazione...cmq per tif corretta intendo che è stata creata con un programma apposta (tipo adobe photoshop) e non rinominando la bmp o un altro file immagine in .tif ...
---------------
Piscopo Paolo

:: wD @ IRCnet :: .NET wannabe 8-)

DaVbNet Profilo | Newbie


mannaggia mannaggia..... hai ragione la colpa è del file .tif
Utilizzo .tif che mi inviano i clienti e non so come vengono creati. Invece ho provato ad usare un .tif creato da scanner e funziona tutto correttamente.

Grazie per l'aiuto

blood Profilo | Senior Member

>
>mannaggia mannaggia..... hai ragione la colpa è del file .tif
>Utilizzo .tif che mi inviano i clienti e non so come vengono
>creati. Invece ho provato ad usare un .tif creato da scanner
>e funziona tutto correttamente.
>
>Grazie per l'aiuto

hihhiih immaginavo...è molto invitante fare operazioni del genere..peccato che non si ha gli stessi effetti

Comunque se hai risolto, accetta una delle mie risposte così chiudiamo il thread
---------------
Piscopo Paolo

:: wD @ IRCnet :: .NET wannabe 8-)
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5