C#使用GDI+创建缩略图实例
2021-04-25 13:44
标签:ref href wim 关于 more 基本 ati 效果 server 本文实例讲述了C#使用GDI+创建缩略图的方法,分享给大家供大家参考。具体方法分析如下: C#的Gdi+还是相当好用的。创建缩略图步骤如下: 1. Image保存图像,需要一个CLSID的参数,它可以这样获得: { UINT num = 0; // number of image encoders UINT size = 0; // size of the image encoder array in bytes ImageCodecInfo* pImageCodecInfo = NULL; GetImageEncodersSize(#, &size;); if(size == 0) return -1; // Failure 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 } 2. Image::Save的另外一个参数EncoderParameters可用于图像的压缩*(这是从网上抄下来的) 使用img/jpeg配合encoderParameters.Parameter[0].Value设置 可以大幅度的减小图像文件所占磁盘空间 EncoderParameters encoderParameters; //构造编码参数列表 //数组中只包含一个EncoderParameter对象 encoderParameters.Count = 1; encoderParameters.Parameter[0].Guid = EncoderQuality; //参数类型为LONG encoderParameters.Parameter[0].Type = EncoderParameterValueTypeLong; //只设置一个参数 encoderParameters.Parameter[0].NumberOfValues = 1; ULONG quality; //压缩JPEG图片质量为原来的80% quality = 80; encoderParameters.Parameter[0].Value = &quality; 3. 关于缩略图 我使用了一下Image的GetThumbnailImage,发现对于某些图像效果很不理想,(颜色较鲜艳的缩略图效果好点,但是对于那些色差不大整体又暗的图像效果就差劲了). 这个时候使用Graphic配合Bitmap直接画缩略尺寸的图像效果挺好 { ASSERT(m_pImg != NULL); // 创建缩略图 int nWidth = m_pImg->GetWidth(); if (cx >= nWidth) { return TRUE; } int nHeight = m_pImg->GetHeight(); int nThumbHeight = nHeight * cx / m_pImg->GetWidth() ; Bitmap bitmap(cx, nThumbHeight, PixelFormat24bppRGB); Graphics graph(&bitmap;); graph.DrawImage(m_pImg, Rect(0,0,cx,nThumbHeight)); …… } 希望本文所述对大家的C#程序设计有所帮助。 本文地址: http://www.paobuke.com/develop/c-develop/pbk23446.html C#使用GDI+创建缩略图实例 标签:ref href wim 关于 more 基本 ati 效果 server 原文地址:http://www.cnblogs.com/paobuke/p/7920087.html
代码如下:
代码如下:
代码如下:
C#使用GDI+创建缩略图实例相关内容
上一篇:C#静态变量与实例变量实例分析
下一篇:C#验证码识别基础方法实例分析