使用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