int GetDIBits( HDC hdc, // handle to DC HBITMAP hbmp, // handle to bitmap UINT uStartScan, // first scan line to set UINT cScanLines, // number of scan lines to copy LPVOID lpvBits, // array for bitmap bits LPBITMAPINFO lpbi, // bitmap data buffer UINT uUsage // RGB or palette index ); 可以把ddb转化为dib 然后把dib信息发送到目的地 然后可以通过CreateDIBSection等函数把它转化为ddb再显示出来
谢谢 我试一试 把HBITMAP转换成DIB能给点提示吗?要用到哪几个函数?
比较简单的方法:1.把你的HBITMAP选入一个memo DC_src中。SelectObject(...); 2.创建一个DIBSection。CreateDIBSection(...);在参数中填入你希望的位图格式BITMAPINFO。在这里你还可以得到DIB位图的数据地址m_pBits。 3.把DIB选入一个另一个DC_dest中。SelectObject(...); 4.BitBlt(DC_dest,...,DC_src,..),这样DIB中就写入了位图数据。 5.传送BITMAPINFO结构和m_pBits指向的数据块(图像数据)。 6.接收数据,构造DIBSection,显示!Everything is Okay now!
HDC hdc, // handle to DC
HBITMAP hbmp, // handle to bitmap
UINT uStartScan, // first scan line to set
UINT cScanLines, // number of scan lines to copy
LPVOID lpvBits, // array for bitmap bits
LPBITMAPINFO lpbi, // bitmap data buffer
UINT uUsage // RGB or palette index
);
可以把ddb转化为dib
然后把dib信息发送到目的地
然后可以通过CreateDIBSection等函数把它转化为ddb再显示出来
我试一试
把HBITMAP转换成DIB能给点提示吗?要用到哪几个函数?
2.创建一个DIBSection。CreateDIBSection(...);在参数中填入你希望的位图格式BITMAPINFO。在这里你还可以得到DIB位图的数据地址m_pBits。
3.把DIB选入一个另一个DC_dest中。SelectObject(...);
4.BitBlt(DC_dest,...,DC_src,..),这样DIB中就写入了位图数据。
5.传送BITMAPINFO结构和m_pBits指向的数据块(图像数据)。
6.接收数据,构造DIBSection,显示!Everything is Okay now!