您的位置:首页 > 其它

WinCE 获取BMP图片数据

2012-12-14 18:10 253 查看
最近在一个WinCE项目中想使用BMP图片数据,在PC机上貌似非常方便就可以得到,但在WinCE里真是折腾了几番。

网络上也有一些类似的介绍;开始总想找更方便的方法。最后参考了一圈,还是只有CreateDIBSection一途。

HBITMAP hb;

BYTE * pBuf;

CDC dcMem;

CClientDC dc(this);

dcMem.CreateCompatibleDC( &dc );

hb = CreateDIBSection( dcMem.GetSafeHdc(),m_pBmpInfo,DIB_RGB_COLORS,(void **)&pBuf,NULL, 0 );

dcMem.SelectObject( hb );

CImage img;

img.LoadFromResource(AfxGetInstanceHandle(),IDB_BITMAP1);

img.StretchBlt(dcMem,0,0,width,height,0,0,width,height);

img.Destroy();

memcpy( m_pBmpData,pBuf, width*height*2 );

delete[] pBuf;

dcMem.DeleteDC();

网络上有介绍使用2个HBITMAP, 2个MmDC来实现;我在这使用了一个,当然还是用了一个CImage。

说明:

1. m_pBmpIfo需要设置好;

2. 图像width和height根据实际图片大小进行设置;

3. m_pBmpData根据图片大小预先分配;

4. 本例中使用的16Bits的BMP图片,并添加到资源中,IDB_BITMAP1为资源ID号;

5. CE下,CImage貌似仅支持LoadFromResource。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: