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、图像失真很严重。
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、图像失真很严重。
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、图像失真很严重。