- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IBitmap接口的使用 计算机系:孙斌 办公室:C117(电话 Email:sunbin@neusoft.edu.cn BREW中图片的显示与处理 BREW 中对于图片的显示,可以使用以下几个接口 IImage接口(图片的显示与动画的播放) IImageCtl接口(滚动图片,略) IBitmap接口(位图的显示与渲染) 除了用到以上接口外,还会涉及到IDisplay接口等 IImage接口 IImage接口 主要用于实现 图片的显示IImage_Draw() 动画的播放与停止IImage_Start()、IImage_Stop() 显示方式的设置(图片显示的大小、偏移、显示坐标的设置等)IImage_SetDrawSize()、IImage_SetOffset() 该接口不能对加载的图片进行渲染 IBitmap接口 IBitmap接口 主要用于实现位图的加载与显示,同时还可以对位图的像素进行处理,从而实现对位图的渲染 IBitmap接口显示位图的过程 DIB与DDB DIB:Device ? Independence ? Bitmap设备无关位图 DDB:Device ? Dependence ? Bitmap设备相关位图 一个位图保存成文件时,需要记录图片的大小、色彩等信息,这些是与设备无关的 一个位图在显示的时候,需装载到内存中,这是与显示设备相关的 IBitmap接口显示位图的过程 屏幕的显示缓冲区 屏幕上看到的内容与其显示缓冲区中的内容是一一对应的 当我们要在屏幕上绘制内容,可以将数据写入显示缓冲区,然后更新到屏幕上 也可以先在一个缓冲区中将数据准备好,然后将这个缓冲区中的内容传输到显示缓冲区,然后再更新到屏幕上 IBitmap接口显示位图的过程 显示步骤 得到屏幕的显示缓冲区 将要显示的图片加载到内存缓冲区(假设为buf1)中,并获取图片信息(大小、颜色等) 根据图片大小创建一个与屏幕显示缓冲区兼容的新缓冲区(假设为buf2,该缓冲区是与设备相关的) 将图片从原缓冲区buf1传输到新缓冲区buf2 对buf2中的图片进行渲染 将buf2中的图片传输到显示缓冲区,然后再更新到屏幕上 IBitmap接口显示位图的过程 用到的函数 IDISPLAY_GetDestination() 得到屏幕的显示缓冲区 返回屏幕位图的指针 该指针使用完,应使用IBITMAP_Release()释放掉 用到的函数 ISHELL_LoadBitmap() 将指定的位图加载到内存缓冲区中 返回指向位图的指针(位图的 IBitmap * 句柄 ) 该位图使用完,也应使用IBITMAP_Release()释放掉 用到的函数 IBITMAP_GetInfo() 获取位图的信息 得到的位图信息填入AEEBitmapInfo 类型的结构体变量中 typedef struct { uint32 cx; 位图的宽度 uint32 cy; 位图的高度 uint32 nDepth; 颜色深度 } AEEBitmapInfo; 用到的函数 int IBITMAP_CreateCompatibleBitmap(IBITMAP *po, IBitmap **ppIBitmap,uint16 w, uint16 h ) 根据po指向的原位图,创建一个与其兼容的、大小为w*h的新的位图缓冲区, 得到的新位图的缓冲区由ppIBitmap指针指向 参数: po:指向当前位图(源位图)接口的指针 ppIBitmap:指向要创建的兼容新位图的指针 w,h:新位图的宽和高 返回值: 成功:SUCCESS 用到的函数 int IBITMAP_BltIn (IBitmap * po,int xDst,int yDst,int dx,int dy,IBitmap*pSrc, int xSrc,int ySrc,AEERasterOp rop ) 将位图从源缓冲区传输到目标缓冲区 目标缓冲区指针po,目标传输区域起始坐标点xDst,yDst;目标区域大小dx,dy 源缓冲区指针pSrc,原缓冲区传输起始坐标点xSrc,ySrc rop:传输光栅操作(传输的方式)AEERasterOp AEE_RO_OR :源位图的像素值与目标位图的像素值作OR(或)操作 AEE_RO_COPY :将源位图的像素直接复制到目标位图 。。。 用到的函数 int IDISPLAY_BitBlt () 将位图从源缓冲区传输到显示缓冲区 参数同IBITMAP_BltIn(); 对位图进行处理(渲染) IDIB 接口/结构 IDIB是一个接口,也是一个结构 与其它 BREW 接口不同,IDIB 还包含公
文档评论(0)