BMP -> TIFF
-
Hallo
Ich möchte eine SW-Bitmap in ein TIFF umwandeln. Ich versuchte dies mit der GDI+ Library zu machen. Das klappt soweit auch, doch wird das TIFF-Image immer LZW komprimiert, für den nächsten Arbeitsschritt muss ich das Bild aber unkomprimiert haben. Wie kann ich das ändern? Ich werde aus der Beschreibung in der MSDN nicht ganz schlau.
Danke schon mal im Voraus!
-
Nach einer Weile suchen und vor allem ausprobieren habe ich herausgefunden, wie ich mein 1-Bit Bitmap in ein umkomprimiertes 1-Bit TIFF wandeln kann.
Hier die Lösung:
CLSID TifCodec; GetImageCLSID(L"image/tiff", &TifCodec); UINT listSize = 0; Image Img = source; // Bitmap holen ULONG CompressionNone = EncoderValueCompressionNone; ULONG ColDepth = 1; // Farbtiefe 1 EncoderParameters *pEncoderParameters = NULL; listSize = Img.GetEncoderParameterListSize(&TifCodec); pEncoderParameters = (EncoderParameters*)malloc(listSize); Img.GetEncoderParameterList(&TifCodec, listSize, pEncoderParameters); pEncoderParameters->Parameter[0].Guid = EncoderCompression; pEncoderParameters->Parameter[0].Type = EncoderParameterValueTypeLong; pEncoderParameters->Parameter[0].NumberOfValues = 1; pEncoderParameters->Parameter[0].Value = &CompressionNone; pEncoderParameters->Parameter[1].Guid = EncoderColorDepth; pEncoderParameters->Parameter[1].Type = EncoderParameterValueTypeLong; pEncoderParameters->Parameter[1].NumberOfValues = 1; pEncoderParameters->Parameter[1].Value = &ColDepth; Img.Save(dest, &TifCodec, pEncoderParameters); // Als Tiff speichern free(pEncoderParameters);