@@@@高分求@@@@@请问用gdi+的getThumbnailImage得到的缩略图如何保存起来?

lilian123 2004-11-02 03:31:39
我需要把所有图片变成统一大小,有什么好点的解决方法?
用gdi+的getThumbnailImage得到的缩略图怎么保存下来呀
...全文
327 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
一条晚起的虫 2004-11-03
  • 打赏
  • 举报
回复
image image(L"1.jpg")
iamge* pThumbnail = image.GetThumbnailImage() ;
GetImageGLSID() ;
pThumbnail->Save(ToWChar(str),&clsid,NULL);
酒红绿叶 2004-11-03
  • 打赏
  • 举报
回复
我做缩略图是用的
DIB加双缓存。
老夏Max 2004-11-03
  • 打赏
  • 举报
回复
参考如下代码:
Graphics graphics(GetDC()->m_hDC);
Image image(ToWChar(strOpenFileName.GetBuffer(strOpenFileName.GetLength())));
Image * pThumbnail = image.GetThumbnailImage(0.2*image.GetWidth(),0.2*image.GetHeight());
Rect block;
block = Rect(0,0,0.2*image.GetWidth(),0.2*image.GetHeight());
CLSID clsid;
if(GetImageCLSID(L"image/jpeg",&clsid))
{
char* str;
str = strFileSave.GetBufferSetLength(MAX_PATH);
pThumbnail->Save(ToWChar(str),&clsid,NULL);
}
echoxue 2004-11-02
  • 打赏
  • 举报
回复
up
broadoceans 2004-11-02
  • 打赏
  • 举报
回复
所谓的三次样条插值只是增加一个函数调用而已,但速度就慢了
//双三次插值法(最高质量)
graphics.SetInterpolationMode(InterpolationModeHighQualityBicubic);
asett1 2004-11-02
  • 打赏
  • 举报
回复
broadoceans(broadoceans) 的thumbnail 效果不好,应该用三次样条插值比较好,GDI+没有提供任何resize算法,因此getThumbnailImage()只能显示 不能保存
lzzqqq 2004-11-02
  • 打赏
  • 举报
回复
不是很明白楼上这位星哥的代码哎!!
是不是用了COM啊??
ProgramInHeart 2004-11-02
  • 打赏
  • 举报
回复



好贴!!
Program In Heart 专专专专专专专专
up 专
up 专
up 用用用用用用用用
up 用 章 用
up 用 章 用
up 用 章 章 用
up 用 章 章 用
up 用 章 章 用
up 用 章 章 用
up up 用章 章 用
upup 章 章
up 章章 章章

broadoceans 2004-11-02
  • 打赏
  • 举报
回复
首先创建一个固定大小(目标)的图片,然后在此图片上画一个即可.
代码如下:(将图象变为200*200)

GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

CLSID encoderClsid;
EncoderParameters encoderParameters;
ULONG quality;
Status stat;
Image image(L"1.jpg");
Bitmap bitmap(200, 200, PixelFormat32bppARGB);
Graphics graph(&bitmap);
graph.DrawImage(&image, Rect(0,0,200,200));
GetEncoderClsid(L"image/jpeg", &encoderClsid);
//构造编码参数列表
//数组中只包含一个EncoderParameter对象
encoderParameters.Count = 1;
encoderParameters.Parameter[0].Guid = EncoderQuality;
//参数类型为LONG
encoderParameters.Parameter[0].Type = EncoderParameterValueTypeLong;
//只设置一个参数
encoderParameters.Parameter[0].NumberOfValues = 1;


//设置JPEG图片质量为最好
quality = 100;
encoderParameters.Parameter[0].Value = &quality;
stat = bitmap.Save(L"1_2.jpg", &encoderClsid, &encoderParameters);
GdiplusShutdown(gdiplusToken);

19,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧