首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

应用gdi 实现图片缩放的功能

2012-09-27 
使用gdi 实现图片缩放的功能我在网上找了半天 也没有搞定我自己搜到的一个资料http://topic.csdn.net/t/20

使用gdi 实现图片缩放的功能
我在网上找了半天 也没有搞定

我自己搜到的一个资料 
http://topic.csdn.net/t/20050404/09/3906015.html


我是按照上面的写的 可是保存出来的是一个黑块 什么都没有 
到底是什么原因?

怎么使用gdi来实现图片的缩放呢?
谢谢 

下面是我的代码 我参考上面的资料写的 
到底什么地方不对呢?

C/C++ code
    Image ReSizeImg(m_strPath);    Graphics OldGraphics(&ReSizeImg);    float fHeight=ReSizeImg.GetHeight();    float fWidth=ReSizeImg.GetWidth();    //图片的中心    float fRate= 130/fWidth;    int iShowPicHeight=fHeight*fRate;        Bitmap Oldbmp(130,iShowPicHeight,&OldGraphics);    Graphics graphics(&Oldbmp);                //命名为NewGraphics比较好


[解决办法]
你这是GDI+吧,不是GDI,GDI的话直接用StretchBlt就可以缩放了.
如果是GDI+的话
grahics.DrawImage(m_bmp.m_pBmp,Rect(rect.left,rect.top,Width,Height),srcx,srcy,m_times*Width,m_times*Height,UnitPixel);
m_times就是倍数,不过是反的,m_time越大缩放越小,
[解决办法]
用StretchBlt

不过你那代码也不是GDI啊

如果是GDI+的话非常简单,如楼上
[解决办法]
GID+ getthumbnail 
然后 GDI+ save

热点排行