社区
嵌入开发(WinCE)
帖子详情
问一个函数的移植问题CreateDIBitmap
liuyuw
2004-09-14 09:22:25
我在VC6里有用到CreateDIBitmap(),但是在EVC里没有这个函数,evc里有没有和这个功能一样的函数?
myDIB = ::CreateDIBitmap(hDC,&m_BmpInfo->bmiHeader,
CBM_INIT,m_BmpImage,m_BmpInfo,DIB_RGB_COLORS);
...全文
188
6
打赏
收藏
问一个函数的移植问题CreateDIBitmap
我在VC6里有用到CreateDIBitmap(),但是在EVC里没有这个函数,evc里有没有和这个功能一样的函数? myDIB = ::CreateDIBitmap(hDC,&m_BmpInfo->bmiHeader, CBM_INIT,m_BmpImage,m_BmpInfo,DIB_RGB_COLORS);
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
FIFO2003
2004-09-16
打赏
举报
回复
up
载舟之水
2004-09-16
打赏
举报
回复
方法二搞错了,重来,你要调试一下,我临时写的,没调试。
(适用24位位图数据,如果你要显示256色,lpSrcDIB+40处 要修改)
HBITMAP DIBTohBitmap(HDC m_hDC,LPSTR lpSrcDIB)
{
HBITMAP hBitmap = NULL;
HBITMAP hOldBmp = NULL;
HDC hTmpDC = NULL;
BITMAPINFOHEADER* bitmapheader = (BITMAPINFOHEADER*)lpSrcDIB;
hBitmap = CreateCompatibleBitmap(m_hDC,
bitmapheader->biWidth,-(bitmapheader->biHeight));
hTmpDC=CreateCompatibleDC(m_hDC);
hOldBmp=(HBITMAP)SelectObject(hTmpDC,hBitmap);
StretchDIBits(hTmpDC,0,0,bitmapheader->biWidth,
-bitmapheader->biHeight,0,0,bitmapheader->biWidth,
-bitmapheader->biHeight,lpSrcDIB+40,(BITMAPINFO*)lpSrcDIB,
DIB_RGB_COLORS,SRCCOPY);
SelectObject(hTmpDC,hOldBmp);
DeleteDC(hTmpDC);
return hBitmap; //记得外面用完释放
}
//其中StretchDIBits 需要 WinCE 4.0以上
载舟之水
2004-09-16
打赏
举报
回复
方法二,在任何情况下,数据都是正确的。但是比上面慢几十至上百毫秒。
HBITMAP DIBTohBitmap(HDC m_hDC,LPSTR lpSrcDIB)
{
HBITMAP hBitmap = NULL;
HBITMAP hOldBmp = NULL;
HDC hTmpDC = NULL;
BITMAPINFOHEADER* bitmapheader = (BITMAPINFOHEADER*)lpSrcDIB;
hBitmap = CreateCompatibleBitmap(m_hDC,
bitmapheader->biWidth,-(bitmapheader->biHeight));
hTmpDC=CreateCompatibleDC(m_hDC);
hOldBmp=(HBITMAP)SelectObject(hTmpDC,hBitmap);
StretchDIBits(hTmpDC,0,0,bitmapheader->biWidth,
-bitmapheader->biHeight,0,0,bitmapheader->biWidth,
-bitmapheader->biHeight,m_pcBitmap,(BITMAPINFO*)pcInfo,
DIB_RGB_COLORS,SRCCOPY);
SelectObject(hTmpDC,hOldBmp);
DeleteDC(hTmpDC);
return hBitmap; //记得外面用完释放
}
//其中StretchDIBits 需要 WinCE 4.0以上
载舟之水
2004-09-16
打赏
举报
回复
这个函数的作用是从指向DIB数据的指针转换为位图句柄。
EVC中没有这个函数,所以要自己实现,实现方式我估计有两种,我贴上我自己想到的方法,这种方法缺点是速度慢些,但是数据正确。还有一种是速度较快,但是数据可能有误差,适合对图像要求不是很精确的环境。你如果发现更好的方法记得贴出来,别忘了。
1. 方法一,速度快,但是在某些特定的情况下,颜色显示不对,但数据其实是对的。
#define WIDTHBYTES(bits) ((((bits) + 31)>>5)<<2)
/**************************************************************************************
DIBTohBitmap 将DIB数据指针(24位)
返回 图像句柄(用完以后记得删除)
**************************************************************************************/
HBITMAP DIBTohBitmap(LPSTR lpSrcDIB)
{
HDC hDC = NULL,hSourceDC = NULL;
HBITMAP hSourceBitmap = NULL, hOldSourceBitmap = NULL;
DWORD dwSourceBitsSize;
VOID *lpSourceBits=NULL;
LPSTR lpTmp=NULL;
LPBITMAPINFOHEADER lpbitmapinfoheader;
hDC = GetDC(NULL);
hSourceBitmap = CreateDIBSection( hDC, (const BITMAPINFO*)lpSrcDIB,
DIB_RGB_COLORS,
&lpSourceBits, NULL, 0 );
ReleaseDC( NULL, hDC );
lpbitmapinfoheader=(LPBITMAPINFOHEADER)lpSrcDIB;
dwSourceBitsSize = lpbitmapinfoheader->biHeight *WIDTHBYTES(lpbitmapinfoheader->biWidth*24);
lpTmp=lpSrcDIB+40;
if (lpSourceBits!=NULL)
CopyMemory( lpSourceBits, lpTmp, dwSourceBitsSize );
return hSourceBitmap;
}
cjyun
2004-09-16
打赏
举报
回复
没有,必须自己写,你可以搜一下,这里是有的。搜索 保存图片就行
rzsheng
2004-09-16
打赏
举报
回复
要看EVC下面有没有 显示bmp的函数库
Excel
函数
100
问
初学Excel
函数
你是否总有一种无力感?... 本次课程结合职场工作中遇到的
问
题
,整理100
问
用
函数
来帮助大家学习Excel
函数
的这些痛点。熟练掌握Excel
函数
的他,总是几分钟就能完成,别人倒腾1天的工作量。
MySQL
函数
、用户自定义
函数
Re: MySQL
函数
、用户自定义
函数
============================== # MySQL
函数
的意义 MySQL 自身提供大量功能强大、方便易用的
函数
。使用这些
函数
,可以极大地提高用户对数据库的管理效率。 #
函数
的...
Excel公式与
函数
全套系列课程 数组公式 财务
函数
查找统计
函数
对
函数
需要提升,对
函数
感兴趣,工作中需要用到Excel
函数
,想系统掌握
函数
,提高逻辑分析
问
题
能力,适合工作中任何岗位职业。... 本课程配套练习素材,同学们购买后打开课程,目录的右上方有
一个
,下载课件。
PowerBI系列之DAX
函数
专题
DAX
函数
初体验: Max、Sum、
Di
vide、if、Values等 值
函数
表
函数
以及表和列的概念 DAX
函数
术语、语法、运算符 DAX运算符和引擎中字母大小写
问
题
DAX编程注释和快捷键 DAX与Excel
函数
的共同点和区别(PPT) DAX、...
轻松学习Python 69个内置
函数
课程介绍----------Python内置
函数
是非常重要的Python基础,本课程通过Python内置
函数
官网文档,以
一个
内置
函数
一节课的方式讲解Python内置
函数
。 ### 内置
函数
官网文档截图 &...
嵌入开发(WinCE)
19,504
社区成员
41,569
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章