以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  如何获得StretchBlt后的BITMAP  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=51915)


--  作者:v.O.x
--  发布时间:8/28/2007 1:10:00 PM

--  如何获得StretchBlt后的BITMAP
如题,我通过StretchBlt后,想得到变换后的位图结构,
请问应该怎么做?
--  作者:卷积内核
--  发布时间:8/29/2007 11:06:00 AM

--  
CDC   dc(this);   
  CDC   MemDC;   
  MemDC.CreateCompatibleDC(NULL);     
  HBITMAP   oldBit   =   (HBITMAP)MemDC.SelectObject(m_hBitmap);   
  dc.StretchBlt(0,0,nWidth,nHeight,&MemDC,0,0,nSrcWidth,nSrcHeight,SRCCOPY);   
  m_hBitmap   =   (HBITMAP)MemDC.SelectObject(oldBit);
--  作者:v.O.x
--  发布时间:8/29/2007 11:33:00 AM

--  
HBITMAP Blt(HWND hwnd,HBITMAP b,int ws,int hs,int wd,int hd);
{
HDC dc = GetDC(hwnd);
HDC mdc = CreateCompatibleDC (dc);
HDC bdc= CreateCompatibleDC (dc);
HBITMAP nb;
SelectObject(mdc,b);
SelectObject(bdc,nb);
StretchBlt(bdc,0,0,wd,hd,mdc,0,0,ws,hs,SRCCOPY);   
ReleaseDC(dc);
ReleaseDC(mdc);
ReleaseDC(bdc);
return nb;
}
ws,hs,源位图宽高
wd,hd缩放后位图宽高



W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms