3852|7

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince显示bmp [复制链接]

从网络上接受到bmp图片数据,然后在界面上显示出该bmp.代码如下:
CBitmap bitmap;
       
                char* pvData;
                pvData = (char*)malloc(VideoIndex);
                memcpy(pvData,Video_Data,VideoIndex);
                //这个地方总是创建失败 Video_Width=176,Video_Height=144
                if(bitmap.CreateBitmap(Video_Width,Video_Height,1,24,pvData) != NULL)
                {
                        CInDoorCeDlg * pDlg;
                        pDlg = (CInDoorCeDlg*)pWnd;
                        //picturebox控件变量m_Pic
                        CDC* pDC = pDlg->m_Pic.GetDC();

                        CDC bitmapDC;
                       
                        bitmapDC.CreateCompatibleDC(pDC);
                        CBitmap* pOldBitmap = bitmapDC.SelectObject(&bitmap);
                        pDC->BitBlt(0,0,Video_Width,Video_Height,&bitmapDC,0,0,SRCCOPY);
                        bitmapDC.SelectObject(pOldBitmap);

                        bitmap.DeleteObject();
                }
                else
                {
                        TRACE(_T("bitmap创建失败 %d\n"),::GetLastError());
                }
                free(pvData);
bitmap.CreateBitmap总是创建失败,返回错误代码是87,该错误是参数错误,但是没看出哪个参数有问题
此帖出自WindowsCE论坛

最新回复

记得好像wince系统要个组件,才可以显示image图片  详情 回复 发表于 2009-6-22 16:53
点赞 关注
 

回复
举报

90

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
自己顶
此帖出自WindowsCE论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
建议用dib显示bmp图片数据
此帖出自WindowsCE论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 
感觉你这里的代码有问题:

char* pvData;
pvData = (char*)malloc(VideoIndex);
memcpy(pvData,Video_Data,VideoIndex);

你确认这样可以把位图文件完整的信息传进去?
位图不单包括像素,还有一个BITMAPINFO结构体的,如果你的位图文件二进制格式不符合要求,调用CreateBitmap时候必然会失败。

建议先把你网络上收到的数据做成HBITMAP检查一下有没问题,没问题了再用CBITMAP来构造。
此帖出自WindowsCE论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

5
 
pvData应该不会有问题,因为把它存储成图像文件,图像可以正常打开。
现在改用IImage方法显示,不过效率有点低。
此帖出自WindowsCE论坛
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

6
 
lz可以先创建一个红色背景看看是否成功~~
还有不知道跟24位色有没有关系
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 4 楼 yzbsd 的回复:
pvData应该不会有问题,因为把它存储成图像文件,图像可以正常打开。
现在改用IImage方法显示,不过效率有点低。


你在网络那端的图片是怎么来的?是不是PC上面的图片?我记得CE上面的DIB格式跟PC上面的DIB格式是有点点区别的,就在那个BITMAPINFO里面。

不过问题解决了就好,实在不行的话就用GAPI玩吧,那玩意渲染起来比较高效。
此帖出自WindowsCE论坛
 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

8
 
记得好像wince系统要个组件,才可以显示image图片
此帖出自WindowsCE论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表