位图显示问题

smjacky 2006-02-22 01:34:03
我碰到的问题是这样的
我分配了一个大的内存区 iBmpBuf = HBufC8::NewL(1024*30);
然后接收从从服务器传来的BMP位图数据,再在iBmpBuf的前面加上BMP位图的头
这样就构成了一个BMP位图数据
现在我想把这个iBmpBuf表示的位图显示到屏幕上,不知道该怎么做?

CWindowGC的一些显示位图的接口,比如
BitBlt(const TPoint &aPos, const CFbsBitmap *aDevice);或者是
DrawBitmap(const TPoint &aTopLeft, const CFbsBitmap *aSource);
等,第二个参数都是CFbsBitmap的指针
而我现在只是个BUF
这怎么转换啊?
...全文
162 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunwhite 2006-02-24
  • 打赏
  • 举报
回复
你可以使用CDirectScreenAccess
zjstu 2006-02-24
  • 打赏
  • 举报
回复
nokia的SDK的“Programming Games in C++”里面有个关于直接写屏幕的例子。
建议创建一个176X208的CFbsBitmap,然后把数据贴到图片上,然后BitBlt到屏幕。
大体就是这样,自己多找找资料多做做,慢慢就明白了,问太多了不好!
smjacky 2006-02-24
  • 打赏
  • 举报
回复
请问,怎么直接把象素点的数据写到屏幕内存呢?
zjstu 2006-02-23
  • 打赏
  • 举报
回复
我觉得你还是在服务器端把位图的象素值传过来,然后直接使用贴到内存中比较好。
CImageDecoder这个东西在模拟器中可以使用,但在6600,7610的真机上不支持,估计只有N70之类的手机才可以,还是不要用的好。
smjacky 2006-02-22
  • 打赏
  • 举报
回复
DataNewL(RFs& aFs, const TDesC8& aSourceData, const TDesC8& aMIMEType, const TOptions aOptions=EOptionNone);
这里的第二个参数aSourceData 是图片的象素点阵的数据,还是指包括bmp头和图片象素点阵两部分内容的所有数据

bmp头跟TFrameInfo里设置的信息是什么关系?
Beover1984 2006-02-22
  • 打赏
  • 举报
回复
CImageDecoder
static CImageDecoder* DataNewL(RFs& aFs, const TDesC8& aSourceData, const TDesC8& aMIMEType, const TOptions aOptions=EOptionNone);

使用上面的函数创建一个CImageDecoder对象,然后调用Convert()就可以转换成一个CFbsBitmap对象.具体用法可以参考SDK » Developer Library » API Reference » C++ API reference » Image Converter Library » CImageDecoder

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧