谁帮忙给段代码把bmp图形格式转换为jpg格式 谁帮忙给段代码把bmp图形格式转换为jpg格式(vc) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.vczx.com/article/show.php?id=568 使用GDI+非常方便.//将文件保存为JPEG文件 //使用不同压缩质量保存JPEG文件 CLSID encoderClsid; EncoderParameters encoderParameters; ULONG quality; Status stat; Image image(L"1.bmp"); RectF rect(0, 0, image.GetWidth() / 2, image.GetHeight() / 2); graphics.DrawImage(&image, rect); GetEncoderClsid(L"image/jpeg", &encoderClsid); //构造编码参数列表 //数组中只包含一个EncoderParameter对象 encoderParameters.Count = 1; encoderParameters.Parameter[0].Guid = EncoderQuality; //参数类型为LONG encoderParameters.Parameter[0].Type = EncoderParameterValueTypeLong; //只设置一个参数 encoderParameters.Parameter[0].NumberOfValues = 1; //设置JPEG图片质量为底 quality = 0; encoderParameters.Parameter[0].Value = &quality; stat = image.Save(L"1_0.jpg", &encoderClsid, &encoderParameters); if(Ok == stat) { Image image(L"1_0.jpg"); graphics.TranslateTransform(rect.Width + 10, 0); graphics.DrawImage(&image, rect); } //设置JPEG图片质量为中等 quality = 50; encoderParameters.Parameter[0].Value = &quality; stat = image.Save(L"1_1.jpg", &encoderClsid, &encoderParameters); if(Ok == stat) { Image image(L"1_1.jpg"); graphics.ResetTransform(); graphics.TranslateTransform(0, rect.Height + 10); graphics.DrawImage(&image, rect); } //设置JPEG图片质量为最好 quality = 100; encoderParameters.Parameter[0].Value = &quality; stat = image.Save(L"1_2.jpg", &encoderClsid, &encoderParameters); if(Ok == stat) { Image image(L"1_2.jpg"); graphics.TranslateTransform(rect.Width + 10, 0); graphics.DrawImage(&image, rect); } 现在GDI+出问题了 最好不用了 http://www.pcvc.net/oldcode/down/ejpeg.zip 这个不错http://blog.csdn.net/xzygod/archive/2003/12/28/5405.aspx输入是24位真彩色,输出是jpg。但是比较麻烦,涉及到jpg的格式 TO: alon21(飘一族.Alon) ( ) 信誉:100你的这个好个好像不行,转换过的图全都是黑的! 可以使用paintlib这个免费库来做。 用CxImage,2个函数就搞定了,Load, Save MFC非模态对话框 VS 2010用过的看看 MFC 同时创建多个socket连接失败的问题 扩展MFC动态库资源与主程序的资源ID相同问题! 如何让Delphi能调用VC的DLL?(二维数组做参数) 散分,勿忘国耻,勿忘九一八 我刚刚接触VC,先遇到一个问题,请帮忙解答 ★★★★想自己做一个电子相册,有几个很菜的问题,请帮帮忙★★★★ 关于clist的问题 vs2012 在创建MFC时出现了以下错误!球大神指点!谢谢! ActiveX中,怎样获得所在页面的URL? 关于在VC下用MSComm控件编写的串口程序的问题
//将文件保存为JPEG文件
//使用不同压缩质量保存JPEG文件
CLSID encoderClsid;
EncoderParameters encoderParameters;
ULONG quality;
Status stat;
Image image(L"1.bmp");
RectF rect(0, 0, image.GetWidth() / 2, image.GetHeight() / 2);
graphics.DrawImage(&image, rect);
GetEncoderClsid(L"image/jpeg", &encoderClsid);
//构造编码参数列表
//数组中只包含一个EncoderParameter对象
encoderParameters.Count = 1;
encoderParameters.Parameter[0].Guid = EncoderQuality;
//参数类型为LONG
encoderParameters.Parameter[0].Type = EncoderParameterValueTypeLong;
//只设置一个参数
encoderParameters.Parameter[0].NumberOfValues = 1;
//设置JPEG图片质量为底
quality = 0;
encoderParameters.Parameter[0].Value = &quality;
stat = image.Save(L"1_0.jpg", &encoderClsid, &encoderParameters);
if(Ok == stat)
{
Image image(L"1_0.jpg");
graphics.TranslateTransform(rect.Width + 10, 0);
graphics.DrawImage(&image, rect);
} //设置JPEG图片质量为中等
quality = 50;
encoderParameters.Parameter[0].Value = &quality;
stat = image.Save(L"1_1.jpg", &encoderClsid, &encoderParameters);
if(Ok == stat)
{
Image image(L"1_1.jpg");
graphics.ResetTransform();
graphics.TranslateTransform(0, rect.Height + 10);
graphics.DrawImage(&image, rect);
} //设置JPEG图片质量为最好
quality = 100;
encoderParameters.Parameter[0].Value = &quality;
stat = image.Save(L"1_2.jpg", &encoderClsid, &encoderParameters);
if(Ok == stat)
{
Image image(L"1_2.jpg");
graphics.TranslateTransform(rect.Width + 10, 0);
graphics.DrawImage(&image, rect);
}
http://blog.csdn.net/xzygod/archive/2003/12/28/5405.aspx
输入是24位真彩色,输出是jpg。但是比较麻烦,涉及到jpg的格式