头文件:
| 代码如下 | 复制代码 |
|
#include |
|
CPP:
| 代码如下 | 复制代码 |
| int GetEncoderClsid(const WCHAR* format, CLSID* pClsid) { UINT num = 0; // number of image encoders UINT size = 0; // size of the image encoder array in bytes ImageCodecInfo* pImageCodecInfo = NULL; GetImageEncodersSize(&num, &size); if(size == 0) return -1; // Failure www.111com.net pImageCodecInfo = (ImageCodecInfo*)(malloc(size)); if(pImageCodecInfo == NULL) return -1; // Failure GetImageEncoders(num, size, pImageCodecInfo); for(UINT j = 0; j { if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 ) { *pClsid = pImageCodecInfo[j].Clsid; free(pImageCodecInfo); return j; // Success } } free(pImageCodecInfo); return -1; // Failure } void DrawMainWindow(Image* img,int w,int h) { HDC hDC = GetDC(AfxGetMainWnd()->m_hWnd); if (hDC) { Graphics graphics(hDC); graphics.DrawImage(img,w,h,img->GetWidth(),img->GetHeight()); ReleaseDC(AfxGetMainWnd()->m_hWnd,hDC); } } void GetThumbnail(LPCSTR srcFile,LPCSTR dstFile,int width,int height,bool constRatio) { GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; GdiplusStartup(&gdiplusToken,&gdiplusStartupInput,NULL); USES_CONVERSION; Image srcImage(A2W(srcFile)); Image *dstImage; int srcWidth = srcImage.GetWidth(); int srcHeight = srcImage.GetHeight(); if( constRatio ){ if ( width / srcWidth height = width * srcHeight / srcWidth; } else { width = height * srcWidth / srcHeight; } } dstImage = srcImage.GetThumbnailImage(width,height); CLSID imgClsid; GetEncoderClsid(L"image/jpeg",&imgClsid); dstImage->Save(A2W(dstFile),&imgClsid,NULL); DrawMainWindow(&srcImage,0,0); DrawMainWindow(dstImage,0,srcImage.GetHeight()+10); delete dstImage; dstImage = NULL; //GdiplusShutdown(gdiplusToken); } |
|
使用方法:
| 代码如下 | 复制代码 |
| GetThumbnail("image.jpg","cc.jpg",200,80,TRUE); | |
ios哔咔网页版直达入口-哔咔漫画iOS网页版一键进入
MyFreeMP3在线音乐官网-MyFreeMP3网页版官方入口
超星学习通网页版登录入口-超星学习通官网登录网址
超星学习通官网快捷登录入口 学习通网页版官方一键直达方法
韩剧再婚皇后全集百度云网盘资源链接分享-韩剧再婚皇后1080p蓝光百度云网盘资源下载
韩剧再婚皇后阿里云盘全集高清1080P资源链接-韩剧再婚皇后免费阿里云盘资源下载4K高清无删减版链接