在开发板显示24位的bmp格式图片

本文介绍了如何在开发板上显示24位的BMP格式图片,详细解析了BMP图片特点、显示原理以及实现步骤。通过读取BMP文件的像素颜色值并处理以适应液晶屏的格式,利用左移和位或运算进行数据拼接。针对显示效率问题提出了内存映射mmap的方法,并讨论了如何处理任意位置和大小的BMP图片显示。
摘要由CSDN通过智能技术生成

1)    bmp图片的特点 :没有压缩--》54字节头+像素颜色信息(BGR)。每个像素点占3字节
    图片显示原理:图片是由一个个像素点组成的,每个像素点都有自己到颜色值,颜色值在计算机中采用RGB(红绿蓝三原色)表示
    显示图像就是把图片中每个像素点填充到液晶屏对应的位置(位置不要错乱就行了)
    液晶屏:每个像素点占4个字节,分别表ARGB的值, A表示透明度

2)具体实现思路
第一步:打开你要显示的800*480大小的bmp图片
    open()
    open("/dev/fb0")//打开开发板液晶屏的驱动
第二步:读取bmp图片的像素点的颜色值(颜色值大小如何计算)
    char bmpbuf[800*480*3]
    lseek(跳过起始位置的54字节)
    read(bmpbuf)  //800*480*3字节,从55字节开始读取
第三步:把读取的颜色值填充(写入)到开发板的液晶屏上
    由于开发板的液晶屏每个像素点占4个字节,跟bmp图片像素点占用的字节数不匹配(顺序也不对)
    思路:可以通过左移加位或运算拼接数据
    write()
第四步:关闭图片和液晶屏

3)需要解决的问题
问题一:write显示bmp图片,效率低,显示速度慢,不流畅 --》内存映射mmap
问题二:任意位置显示任意大小的bmp图片 --》读bmp头部信息(54字节)获取宽、高

 

 

#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值