请问有没有人有可以缩放JPG的类? 谢谢。
解决方案 »
- 心电处理的非常好的一个工具包,分享
- VC++6.0中微调按钮问题
- 问CToolTipCtr怎么用的?
- TrackPopupMenu的问题,在OnRButtonDown中为什么不用menu.Detach
- 在IE浏览器中如何确定鼠标下的是图片,类似qq眩采工具栏--就是在IE中,当鼠标移动到图片上时,会弹出一个对话框,可以将图片保存等.
- 关于旋转的问题?
- 继续讨论:release版本编译通过,运行期间出现对话框----
- 如何检查端口在系统中已经被使用了?
- 如何获取WIN2000/NT的用户列表及其权限?我主要做的是当用户权限发生改变时进行报警。
- 类CBitmap、 类Bitmap和类 HBitmap之间有什么区别?
- 求实现邮件多个附件添加效果的代码
- 如何得到文本文件的行数
有很多现成的图片缩放代码参考啊
BMP。
我都研究一星期了!
不知道你是不是这样做的,涉及到图片文件的解码,后2个复杂一点。
IPicture *pPicture;//声明OLE提供的图像对象
IStream *pStrm;//声明一个流对象
CFileStatus fstatus;
CFile file;
LONG cb;
if((file.Open(FilePathName,CFile::modeRead))&&(file.GetStatus(FilePathName,fstatus))&&((cb=fstatus.m_size)!=-1))
{
HGLOBAL hGlobal=GlobalAlloc(GMEM_MOVEABLE,cb);
LPVOID pvData=NULL;
CDC *pDC;
pDC=(this->GetActiveWindow())->GetDC();//得到活动视图的设备上下文
if(hGlobal!=NULL)
{
if((pvData=GlobalLock(hGlobal))!=NULL)
{
file.Read(pvData,cb);//将图像文件数据读入内存
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal,TRUE,&pStrm);//创建流对象
if(SUCCEEDED(OleLoadPicture(pStrm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPicture))) //根据流对象pStrm初始化图像对象pPicture
{
OLE_XSIZE_HIMETRIC Width;
OLE_YSIZE_HIMETRIC Height;
pPicture->get_Width(&Width);
pPicture->get_Height(&Height);
//得到图像的宽、高尺寸,注意该尺寸的逻辑单位不是图像的像素
if(FAILED(pPicture->Render(*pDC,rect.left+1,rect.top+25,rect.right-rect.left,rect.bottom-rect.top,0,Height,Width,-Height,NULL)))
//在初始点(100,80)宽为200、高为150的矩形中显示图形
AfxMessageBox("Failed to render the picture");
pPicture->Release();
}
else
AfxMessageBox("Error loadimg picture from stream!");
}
}
}
else
AfxMessageBox("Can open image file!");
整理成的,是02年的时候做的,刚才试着在VS.2005上编译了一下,还可以用。里面有几个类,可以对bmp,jpg,pcx,gif,tiff等各种图片操作,缩放、旋转90度等等都有
包括一个调用例子(这个例子是02年我写的一个工具的一部分,是给一个档案管理程序调用的,
所以,有些功能是用不了的,比如向前向后)
给我邮箱,我发给你。