有谁用过CxImage生成gif吗,我将一个bmp或jpg转成gif,生成的文件总是不对。

时间:2021-01-26 04:52:14
CxImage image;
if(image.Load("c:\\1.bmp",CXIMAGE_FORMAT_BMP))
{
    //check valid 就不写了,验证是成功的
    image.Save("c:\\1.gif"",CXIMAGE_FORMAT_GIF);
}

或者

FILE* hFile;
hFile = fopen("c:\\1.gif","w+b");
CxImageGIF image;
image.Load("c:\\1.bmp",CXIMAGE_FORMAT_BMP);
image.Encode(hFile);
fclose(hFile);

可是生成的文件都不对。应该怎么做呢?
大侠,救救命吧!

4 个解决方案

#1


我用过CXImage库,不过现在改用GDIPlus,建议你也使用GDIPlus,这种格式转换在新的开发包内显得非常简单!

#2


gdi+好像只支持6、7种图像格式,而且资源泄漏不好解决。

#3


GDI+读出的Bitmap如何转成DIB?

#4


我用gdi+,
jpg--->gif.
1、效果是文件比较大,我想把文件大小限制在几k以内,如何变小呢?
         nCompress=0;
encoderParameters[0].Count = 1;
encoderParameters[0].Parameter[0].Guid = EncoderQuality;
encoderParameters[0].Parameter[0].NumberOfValues = 1;
encoderParameters[0].Parameter[0].Type = EncoderParameterValueTypeLong;
encoderParameters[0].Parameter[0].Value = &nCompress;
我判断文件大小,如果超出,就nCompress++;循环。
可是文件大小不变呀。怎么回事?
2、图像失真很严重。

#1


我用过CXImage库,不过现在改用GDIPlus,建议你也使用GDIPlus,这种格式转换在新的开发包内显得非常简单!

#2


gdi+好像只支持6、7种图像格式,而且资源泄漏不好解决。

#3


GDI+读出的Bitmap如何转成DIB?

#4


我用gdi+,
jpg--->gif.
1、效果是文件比较大,我想把文件大小限制在几k以内,如何变小呢?
         nCompress=0;
encoderParameters[0].Count = 1;
encoderParameters[0].Parameter[0].Guid = EncoderQuality;
encoderParameters[0].Parameter[0].NumberOfValues = 1;
encoderParameters[0].Parameter[0].Type = EncoderParameterValueTypeLong;
encoderParameters[0].Parameter[0].Value = &nCompress;
我判断文件大小,如果超出,就nCompress++;循环。
可是文件大小不变呀。怎么回事?
2、图像失真很严重。