怎样保存修改过的JPG,GIF图片,一定要先转成位图吗? 在打开的图像上绘图后,图像是JPG,GIF格式的,点击保存将修改过的图片保存下来,怎样实现?各位大侠救命,分已不多,,, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要是用CImage类的话,直接保存就可以了。不用转存Bitmapm_image.Save("d:\\abc.jpg"); 用CImage类的话,直接保存就可以了。不用转存Bitmap .m_pImage->Save(file, CxImage::FindType(file)); 把这个转换的例子给你一个,做一下参考://****************************************************************************************////函数 CreateSmallPic//主要功能: 将一个大图转成小图//参数列表: // 1、char *szOldFileName:// 2、char *szNewFilName://返回值: //备注: 对于小图片不转//****************************************************************************************//bool CreateSmallPic(char *szOldFileName, char *szNewFilName){ const WIDTH = 160; const HEIGHT = 160; CImage oldimg; CImage newimg; oldimg.Load(szOldFileName); if(oldimg.IsNull()) return false; int nWidth = 160; int nHeight = 160; nWidth = oldimg.GetWidth(); nHeight = oldimg.GetHeight(); if(nWidth > WIDTH || nHeight > HEIGHT) { double dRatio = nWidth * 1.0 / nHeight; if(nWidth > nHeight) { nWidth = WIDTH; nHeight = nWidth / dRatio; } else { nHeight = HEIGHT; nWidth = nHeight * dRatio; } } if(!newimg.CreateEx(nWidth, nHeight, 24, BI_RGB)) { oldimg.Destroy(); return false; } int nPreMode = ::SetStretchBltMode(newimg.GetDC(), HALFTONE); newimg.ReleaseDC(); oldimg.Draw(newimg.GetDC(), 0, 0, nWidth, nHeight, 0, 0, oldimg.GetWidth(), oldimg.GetHeight()); newimg.ReleaseDC(); ::SetBrushOrgEx(newimg.GetDC(), 0, 0, NULL); newimg.ReleaseDC(); ::SetStretchBltMode(newimg.GetDC(), nPreMode); newimg.ReleaseDC(); newimg.Save(szNewFilName); newimg.Destroy(); oldimg.Destroy(); return true;} 一动对话框就停止录像以及保存初始化文件名问题 点击文件获得路径名 调试时,看不到局部变量,什么原因。 如何根据一个可执行文件名,得到其运行时的进程名?比如文件名为CoralQQ.exe,运行起来进程名是QQ.exe 关于设置库文件和数据库 请问如何设置应用的帮助文件? 谢谢 读取txt里的数据存入到数组中的问题,牛人们帮我看下 高分求救:一个发email的程序,如果只知道对方邮件地址,非得提供他得smtp服务器地址吗? vc CString 问题 能否读取CEdit是否是只读状态? 树型数据如何保存,并在网络中传送 vc ado 数据库如何判断表已经存在?
m_image.Save("d:\\abc.jpg");
//函数 CreateSmallPic
//主要功能: 将一个大图转成小图
//参数列表:
// 1、char *szOldFileName:
// 2、char *szNewFilName:
//返回值:
//备注: 对于小图片不转
//****************************************************************************************//
bool CreateSmallPic(char *szOldFileName, char *szNewFilName)
{
const WIDTH = 160;
const HEIGHT = 160;
CImage oldimg;
CImage newimg;
oldimg.Load(szOldFileName);
if(oldimg.IsNull())
return false;
int nWidth = 160;
int nHeight = 160; nWidth = oldimg.GetWidth();
nHeight = oldimg.GetHeight(); if(nWidth > WIDTH || nHeight > HEIGHT)
{
double dRatio = nWidth * 1.0 / nHeight;
if(nWidth > nHeight)
{
nWidth = WIDTH;
nHeight = nWidth / dRatio;
}
else
{
nHeight = HEIGHT;
nWidth = nHeight * dRatio;
}
} if(!newimg.CreateEx(nWidth, nHeight, 24, BI_RGB))
{
oldimg.Destroy();
return false;
} int nPreMode = ::SetStretchBltMode(newimg.GetDC(), HALFTONE);
newimg.ReleaseDC();
oldimg.Draw(newimg.GetDC(), 0, 0, nWidth, nHeight, 0, 0, oldimg.GetWidth(), oldimg.GetHeight());
newimg.ReleaseDC();
::SetBrushOrgEx(newimg.GetDC(), 0, 0, NULL);
newimg.ReleaseDC();
::SetStretchBltMode(newimg.GetDC(), nPreMode);
newimg.ReleaseDC(); newimg.Save(szNewFilName);
newimg.Destroy();
oldimg.Destroy(); return true;
}