查看“Microduino bmp格式图像显示/zh”的源代码
←
Microduino bmp格式图像显示/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 800px;" |- | ==目的== 把存储在SD卡内的bmp格式图像文件,通过TFT屏显示出来。支持显示图像深度有lbit、4bit、8bit、16bit、24bit及32bit; ==设备== {|class="wikitable" |- |模块||数量||功能 |- |[[Microduino-Core+/zh]]||1||核心板 |- |[[Microduino-USBTTL/zh]] ||1||下载程序 |- |[[Microduino-Module TFT/zh]]||1||显示模块 |- |[[Microduino-Module SD/zh]]||1||SD模块 |- |[[Microduino-Shield Cube-S2/zh]]||1||基于Microduino的扩展板 |} *其他硬件设备 {|class="wikitable" |- |元器件||数量||功能 |- |1.27间距的8Pin导线||1||连接TFT模块 |} ==什么是bmp== BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。 ==bmp格式== 典型的BMP图像文件由四部分组成: [[File:bmp_3.png|600px|center|thumb]] * 1:位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息; [[File:bmp_6.png|600px|center|thumb]] * 2:位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息; [[File:bmp_7.png|600px|center|thumb]] * 3:调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板; * 4:位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。 ==bmp类型== 位图一共有两种类型,即:设备相关位图(DDB)和设备无关位图(DIB)。DDB位图在早期的Windows系统(Windows 3.0以前)中是很普遍的,事实上它也是唯一的。然而,随着显示器制造技术的进步,以及显示设备的多样化,DDB位图的一些固有的问题开始浮现出来了。比如,它不能够存储(或者说获取)创建这张图片的原始设备的分辨率,这样,应用程序就不能快速的判断客户机的显示设备是否适合显示这张图片。为了解决这一难题,微软创建了DIB位图格式。 设备无关位图 (Device-Independent Bitmap) DIB位图包含下列的颜色和尺寸信息: * 原始设备(即创建图片的设备)的颜色格式。 * 原始设备的分辨率。 * 原始设备的调色板 * 一个位数组,由红、绿、蓝(RGB)三个值代表一个像素。 * 一个数组压缩标志,用于表明数据的压缩方案(如果需要的话)。 ==存储方式== 在BMP文件中,如果一个数据需要用几个字节来表示的话,那么该数据的存放字节顺序为“低地址村存放低位数据,高地址存放高位数据”。 ==位图数据== 位图数据在文件中的排列顺序是从左下角到右上角,以行为主序排列的。也就是图像显示第一行的数据放到文件的位图数据的最后一行,图像显示第二行的数据放到文件的位图数据倒数第二行,以此类推。 ==对齐规则== Windows默认的扫描的最小单位是4字节,如果数据对齐满足这个值的话对于数据的获取速度等都是有很大的增益的。 因此,BMP图像顺应了这个要求,要求每行的数据的长度必须是4的倍数,如果不够需要进行比特填充(以0填充),这样可以达到按行的快速存取。这时,位图数据区的大小就未必是 图片宽×每像素字节数×图片高 能表示的了,因为每行可能还需要进行比特填充。 ==原理图== ==BMPFile库的API== * 参数:File * 返回值:bool * 作用:从SD卡打开图像文件,打开成功时返回true,否则返回false; * bool open(File &file); * 参数:char* * 返回值:bool * 作用:从SD卡打开图像文件,打开成功时返回true,否则返回false; * bool open(char* fileName); * 参数:无 * 返回值:无 * 作用:关闭图像文件; * void close(void); * 参数:Adafruit_ST7735 *,int16_t ,int16_t * 返回值:无 * 作用:在TFT屏显示图像文件的内容; * void draw(Adafruit_ST7735 *dev, int16_t x, int16_t y); * 参数:无 * 返回值:图像的宽度 * 作用:获取图像的宽度 * uint16_t getWidth(); * 参数:无 * 返回值:图像的高度 * 作用:获取图像的高度 * uint16_t getHeight(); * 参数:uint16_t * 返回值:无 * 作用:设置颜色背景,仅用于32bit图像深度; * void setBackgroundColor(uint16_t color); * 参数:无 * 返回值:背景的颜色 * 作用:获取背景的颜色; * uint16_t getBackgroundColor(void); ==程序== * 源代码:'''[[https://github.com/Microduino/Slideshow Slideshow]]''' ==调试== 步骤一: 把core+、模块和底板堆叠在一起,并用8Pin线将底板与TFT模块连接一起。 步骤二: 将picture文件夹下的图片放到SD卡内。 步骤三: 打开程序并下载到core+,之后就可以看到TFT屏图像显示。 ==结果== [[File:bmp_1.jpg|600px|center|thumb]] ==视频==
返回至
Microduino bmp格式图像显示/zh
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息