博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MSTAR屏幕显示接口类-DIB,IBitmap,IDisplay,IDispCanvas,IFont,IImage等
阅读量:2221 次
发布时间:2019-05-08

本文共 2358 字,大约阅读时间需要 7 分钟。

来自:http://hi.baidu.com/gaojinshan/blog/item/4140043de1f07edb9f3d62c1.html

IDisplay可以画图形,画文本,画图片等等,很常用;IDispCanvas是对IDisplay的封装,貌似不常用。

IDispCanvas是包含IDisplay,如果需要,可自己创建IDispCanvas(画布),然后在其上绘制
RootContainer是包含IDispCanvas的,将容器内的控件(IWidget)都绘制其上。
CanvasWidget是包含IDisplay的,专门用来绘制的控件。
CanvasWidget很好用,推荐用!

DIB_t

DIB(Device Independent Bitmap)即设备无关位图。在MSTAR上,它不是接口类,只是一个结构体(DIB_t),其成员包含位图的宽(nWidth),高(nHeight),色深(nBpp),屏幕内存缓冲区的地址(nAddr)和大小(nSize)。

IBitmap

IBitmap即位图接口类。它包含DIB_t;它具备Alpha透明(Transparency),指定透明色(TransColor),透明类型(TansType),色彩方案(nColorScheme:RBG565等),调色板(pPalette),调色板颜色数(nCntPalette),脏矩形区域(tRcDirtyArea)等属性;还提供设置或获取某点颜色(SetPixel/GetPixel),画水平或竖直线(DrawHLine/DrawVLine),填充矩形区域(FillRect),位图复制与伸缩(BltIn/StretchBlt),获取DIB(GetDib)等接口。

IBitmapExt

IBitmapExt即IBitmap的扩展(Extend)。扩展提供了设置调色板(SetPalette),设置或读取脏区域(GetDirtyArea/SetDirtyArea),渐出(BltInFadeOut),长宽交换(DimensionSwitch)等接口。

IDisplay

IDisplay即显示接口类。它包含IBitmap和IFont;除了具备IBitmap和IFont的属性外,还具备宽(nWidth),高(nHeight),颜色(nColorItem:字体色,背景等),用户区域(tRcCA),显示模式(nDispMode:PORTRAIT,LANDSCAPE,LANDSCAPE_270等),屏幕ID(nDispId:MAIN_DISPLAY,SUB_DISPLAY)等属性;除了能提供继承自IBitmap和IFont的接口外,还提供画线(DrawLine),画矩形(DrawRect),画三角形(DrawTriangle),画弧形(DrawArc),画椭圆(DrawEllipse),绘制彩色字符串(DrawColorfulText),获取系统位图(GetDeviceBitmap),创建位图(CreateBitmap),清屏(ClearScreen),刷屏(Update),渐出(FadeOut)等接口。(注明:IDisplay支持横竖屏,还可通过宏控制,支持多层)

IDispCanvas

IDispCanvas即显示画布接口类。它包含IDisplay。仅提供SetDisplay/GetDisplay,SetBitmap/GetBitmap,SetCARect/GetCARect等接口(注明:IDispCanvas也继承了IDisplay层操作接口)

IFont

IFont即字体接口类。它具备字体高(nHeight)等属性,它提供绘制字符串(DrawText),测量字符串长度(MeasureText),创建字形位图(CreateGlyphDib)等接口。(注明:IFONT_DrawText()是将字符绘制到IBitmap上)

IImage

IImage即图片接口类。它是用于图片绘制的,具备IDisplay和IBitmap,图片大小(tImgSize),文件数据流(pStream)等属性;它提供了解码帧(DecodeFrame),绘制帧(DrawFrame),以及播放动画的开始(Start)和停止(Stop),绘制(Draw),获取图片信息(GetImageInfo:nWidth,nHeight,nFrames,nFormat等),获取图片格式(GetImageFormat:BMP,PNG,JPG,GIF等),是否动画(IsAnimation),获取图片大小(GetImageSize:nWidth,nHeight),获取结果位图(GetResultBmp),设置或获取解码参数(SetDecodeParm/GetDecodeParam:nWidth,nHeight,nAngle,tRegion等),设置或清除数据(SetSrcBuffer/ClearSrcBuffer),设置数据源(SetSrcURL),设置(SetDisplay),注册或注销通知(RegNotify/DeregNotify),设置自动解码(SetAutoDecode),设置异步解码(SetForceAsyncDecode)等接口。(注明:IIMAGE_Draw()是将图片绘制到IDisplay上)

IImageMaker

IImageMaker即图片生成接口类。它是用于生成图片,提供了将图片文件旋转(Rotate:90,180,270等),将IBitmap或IImage编码到内存缓冲区(Encode:BMP,JPG),将IBitmap或IImage保存到文件(SaveAs:BMP,JPG)等接口。

转载地址:http://bbifb.baihongyu.com/

你可能感兴趣的文章
Intellij IDEA使用(五)—— Intellij IDEA在使用中的一些其他常用功能或常用配置收集
查看>>
Intellij IDEA使用(六)—— 使用Intellij IDEA创建Java项目并配置jar包
查看>>
Eclipse使用(十)—— 使用Eclipse创建简单的Maven Java项目
查看>>
Eclipse使用(十一)—— 使用Eclipse创建简单的Maven JavaWeb项目
查看>>
Intellij IDEA使用(十三)—— 在Intellij IDEA中配置Maven
查看>>
面试题 —— 关于main方法的十个面试题
查看>>
集成测试(一)—— 使用PHP页面请求Spring项目的Java接口数据
查看>>
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>