最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
asp.net中C实现缩放图片的例子
时间:2022-06-25 08:14:14 编辑:袖梨 来源:一聚教程网
头文件:
代码如下 | 复制代码 |
#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 < num; ++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 / srcHeight ) { 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); |
相关文章
- 第五人格贪吃蛇大作战联动时装怎么样 贪吃蛇联动独特时装介绍 12-27
- 以闪亮之名龙族幻想联动怎么玩 以闪亮之名龙族幻想联动介绍 12-27
- 桃源深处有人家养怡尘世装饰大赛怎么玩 养怡尘世装饰大赛活动介绍 12-27
- 《流放之路2》巨像札而马拉斯打法完全攻略分享 12-27
- 《流放之路2》锻造大师梅克图尔打法技巧分享 12-27
- 《流放之路2》奥札尔宝藏任务攻略分享 12-27