根据BITMAPINFO获取位图数据
2012-12-21 15:48
405 查看
LPSTR lpDIBBits;
BITMAPINFO &bmInfo = *(LPBITMAPINFO)hBitmap ;
if( bmInfo.bmiHeader.biBitCount > 8 )
lpDIBBits = (LPSTR)((LPDWORD)(bmInfo.bmiColors + bmInfo.bmiHeader.biClrUsed) + ((bmInfo.bmiHeader.biCompression == BI_BITFIELDS) ? 3 : 0));
else
{ int nColors = bmInfo.bmiHeader.biClrUsed? bmInfo.bmiHeader.biClrUsed : 1 << bmInfo.bmiHeader.biBitCount;
lpDIBBits = (LPSTR)(bmInfo.bmiColors + nColors);
}
SetStretchBltMode(ImageMemDC.m_hDC, COLORONCOLOR);
StretchDIBits( ImageMemDC.m_hDC,0,0,nWidth,nHeight,0,0,nWidth,nHeight,
lpDIBBits,(LPBITMAPINFO)hBitmap,DIB_RGB_COLORS,SRCCOPY);
BITMAPINFO &bmInfo = *(LPBITMAPINFO)hBitmap ;
if( bmInfo.bmiHeader.biBitCount > 8 )
lpDIBBits = (LPSTR)((LPDWORD)(bmInfo.bmiColors + bmInfo.bmiHeader.biClrUsed) + ((bmInfo.bmiHeader.biCompression == BI_BITFIELDS) ? 3 : 0));
else
{ int nColors = bmInfo.bmiHeader.biClrUsed? bmInfo.bmiHeader.biClrUsed : 1 << bmInfo.bmiHeader.biBitCount;
lpDIBBits = (LPSTR)(bmInfo.bmiColors + nColors);
}
SetStretchBltMode(ImageMemDC.m_hDC, COLORONCOLOR);
StretchDIBits( ImageMemDC.m_hDC,0,0,nWidth,nHeight,0,0,nWidth,nHeight,
lpDIBBits,(LPBITMAPINFO)hBitmap,DIB_RGB_COLORS,SRCCOPY);
相关文章推荐
- IOS/OSX 下对各类图片的编解码、图片裸数据(bitmap data)的获取、根据裸数据(bitmap)重构图片,及源码
- PHP根据经纬度获取在范围坐标的数据
- android 获取Bitmap位图所占用的内存大小
- c/c++ 数据结构之位图(bitmap)具体解释
- 【数据结构】位图BitMap、布隆过滤器的算法实现
- C++ Builder 如何获取数据类型的PTypeInfo
- 根据班级获取学员下拉框数据
- 如何根据内存数据生成位图
- 使用rxjava2.0根据url获取bitmap,并显示到imageview上
- 根据数据库名获取所有表及视图名称
- 使用JavaScript根据从后台获取来的数据打开一个新的页面
- sql 根据指定条件获取一个字段批量获取数据插入另外一张表字段中+MD5加密
- android 获取Bitmap位图所占用的内存大小
- 读取Bitmap(设备无关位图)数据的经典C代码
- 根据地址, 通过Retrofit 获取网络数据, 显示在RecycleView 中
- 将bitmap文件拖进对话框中,获取位图文件的参数。
- 根据对象批量获取页面数据迭代保存到集合中
- 【第四篇章-android平台MediaCodec】根据编码类型MIME_TYPE获取MediaCodecInfo
- 根据参数远程获取不同的数据
- C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法