Bonjour,

Je suis actuellement sur un vieux projet C++/MFC (Windows NT) qui utilise ImageGear98 pour lire des images Tiff au format CCITT4.
L'application doit maintenant lire de nouvelles images Tiff au format LZW, malheureusement ImageGear ne lit pas les LZW (ou alors avec une extension que nous ne pouvons pas acheter).

J'ai donc décidé d'entreprendre une petite conversion gràce à GDI+ lors de la lecture de ces fichiers (et de la sauvegarde) pour qu'ils soient lisible ensuite par ImageGear. (de même lorsque je dois créer des images Tiff avec GDI+).

Mais mon code ne fonctionne pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 
Bitmap *image = new Bitmap(L"imageLZW.tif");
 
CLSID pngClsid
GetEncoderClsid(L"image/tif", &pngClsid);
 
EncoderParameters encoderParameters;
 
encoderParameters.Count = 1;
encoderParameters.Parameter[0].Guid = EncoderCompression;
encoderParameters.Parameter[0].Type = EncoderParameterValueTypeLong;
encoderParameters.Parameter[0].NumberOfValues = 1;
 
ULONG valueParameter = EncoderValueCompressionCCITT4;
encoderParameters.Parameter[0].Value = &valueParameter;
 
Status statut = image->Save(L"conversion.tif", &pngClsid, &encoderParameters);
le statut renvoie 2 (invalid parameter)

Si j'affecte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 valueParameter = EncoderValueCompressionLZW
la copie fonctionne mais biensur pas de conversion.

Si quelqu'un sait si c'est possible, si je fais fausse route, ou juste s'il y a un problème dans mon code ?

Merci