S3C2440开发板上BMP图片的显示之一

发布者:轻松自在最新更新时间:2019-09-16 来源: eefocus关键字:S3C2440  BMP图片  显示 手机看文章 扫描二维码
随时随地手机看文章

一、BMP图片的格式分析

1、BMP文件的大致组成

BMP文件的数据由四个部分组成:位图文件头部、位图信息头部、彩色表和图像数据阵列字节。其中彩色表不是必须的,比如24位真彩色位图就没有彩色表。

(1)位图文件头部的组成(前面14个字节)


(2)位图信息头部的组成(从14字节开始,14-53共40个字节)


(3)下面以一个文件的分解为例,加深对各个分量的理解。

第一个文件为 160x128,24位真彩色,用Ultraedit获得其头部如下:



分析的信息填入上面表格的第三栏和第四栏。

对于BMP最重要的几个信息如上表用红色标注出来的。

文件头14个字节,主要是“BM”标注,文件大小等于61994个字节,最重要的是指出了图像数据的偏移等于54字节。

信息头最主要的信息时位图像素宽度等于160字节,位图像素高度等于128字节,每个像素占据24位(也就是3个字节)。图像数据总共占用的字节数等于= 160 x 128 x 3 = 61440字节,再加上头部54字节,就是整个BMP图片文件的大小 61494个字节。

 

(4)单色BMP格式

黑白图,每个像素只占一位,而颜色表总共有两项,占8个字节。故图像数据区的开始是 0x36 + 8 = 0x3E字节。

颜色表总是从0x36=54字节开始。

00000000代表黑色,00FFFFFF代表白色。比如F0这样一个字节,实际表示八个像素,前面四个胃白色,后面四个像素为黑色。

 

(5)16色BMP格式

16个颜色,每个像素占据4位,颜色表总共16项,占据64个字节,故数据区是从 0x36 + 0x40 = 0x76字节开始。

 

(6)256色BMP格式

256个颜色,每个颜色占据8位,颜色表总共256项,占据 256 x 4 = 1024字节。故图像数据区开始是 第0x36 + 0x400 = 0x436字节。

 

(7)BMP图片的重要特征

数据区里的数据是线性的,行主序,依次是 点一的B值,点一的G值,点一的R值,点二的B值,点二的G值,点二的R值,等等,需要注意的是,Windows中普遍采用了行倒向扫描的约定,即,BMP文件中原点在左下角,图像矩阵数组第一行实际是图片的最后一行。

还有一点也需要注意:Windows要求每一行的数据的长度必须是4Bytes的整数倍,如果不是,要以值为0的字节补充,如果读取的时候不处理,会得到一个倾斜的图像。如一个

 

2、读取BMP文件的思路

(1)图像信息结构体

建立一个BMPInfo结构体,主要包括 图像数据区偏移DataOff、彩色表偏移ColorOff、像素宽度PixWidth、像素高度PixHeight、每像素位数BitPerPix、是否压缩Compressed、图像每行字节数BytePerRow=每像素位数 * 宽度/8,补满为4的整数倍。(主要是由于每一行的数据的长度必须是4Bytes的整数倍,可能出现0填充情况)。

(2)如何读取指定行、指定列的像素

U32 GetPixel (&BMPINFO, Row,Col)

首先要定位行(相对高度而言)首的偏移,相对于数据区的偏移计算公式是(Height – Row )* BytePerRow,再计算列数相对于行首的偏移=Col * 每像素位数 / 8。故总的数据偏移 = 数据区偏移 + 行首的相对偏移 + 列偏移。

将文件指针定位到文件的偏移处,如果是24真彩色位图,则读取3个字节,转换为32位格式;如果是256色图,则还要读取彩色表:文件偏移 = 彩色表偏移 + 颜色索引x 4,再读取四个字节返回32位数据。

 

(3)从文件读取的RGB数据,要转换为LCD支持的格式,比如我这上面的液晶支持16位(5:6:5)格式,这样就必须经过转换,当然也可以让液晶底层操作函数接收32位颜色格式,再作内部的转换。

 

(4)如何确定液晶从哪一行开始显示,哪一列开始?显示多少行,显示多少列?

比如我的液晶为 160x128 最多显示128行。如果图片的高度大于128行,液晶显示是从127行开始。如果图像小于128行,比如120行,则就从119行开始显示。

如果液晶列数小于位图宽度,则显示宽度=液晶列数160。如果液晶列数大于位图宽度,则显示列数=位图宽度,截止列为=位图宽度 – 1。

 

同时,以后可能还要支持图片的上下、左右移动,主要是调整 液晶显示行列与位图行列的关系。

比如按下向右键,要求每次移动16个像素,什么意思呢,实际上相当于移动液晶窗口,原来左边对应位图第0列,现在对应第16列。那么向下按键,液晶窗口向下移动,本来第一行显示为图第一行,现在则显示位图的第16行。如下图所示。


关键字:S3C2440  BMP图片  显示 引用地址:S3C2440开发板上BMP图片的显示之一

上一篇:S3C2440开发板上BMP图片的显示之二
下一篇:LCD显示图片的函数-ARM体系-2440

推荐阅读最新更新时间:2024-11-08 11:27

东芝移动显示器开发出498ppi的超高分辨率液晶面板
  东芝移动显示器于2011年10月20日宣布开发出了分辨率高达498ppi的6.1英寸液晶面板。作为直视型显示器,宣称达到了世界最高水平的分辨率。通过提高分辨率,可显示与照片几乎相同的影像。该产品将用于平板终端等便携终端。   开发品的像素为2560×1600。对比度为1000比1,视角为上下左右各176度以上(对比度为10比1以上)。色彩表现范围按NTSC规格比为61%,显示色数为1677万7216。驱动元件采用低温多晶硅TFT。   东芝移动显示器预定在2011年10月26~28日于太平洋横滨会展中心举办的“FPD international 2011”上展出该产品。 图1:分辨率为498ppi的6.1英寸
[家用电子]
OmniVision全球首条12英寸硅基液晶显示芯片封测生产线投产
据松江区消息:全球第一条12英寸硅基液晶投影显示芯片(LCOS)封测生产线,近日在松江出口加工区内的豪威半导体(上海)有限责任公司建成并投入量产。 据悉,硅基液晶投影显示芯片(LCOS)是该公司投入大量人力物力研发的高科技产品,具有高分辨率、低价格、反射式成像的特点,主要应用于市场兴起的可穿戴设备、AR/VR、医疗、汽车等领域。该生产线将给豪威半导体(上海)有限责任公司带来更大的发展空间。 豪威半导体(上海)有限责任公司是由豪威技术国际有限公司于2001年在松江出口加工区投资兴建的半导体集成电路高新技术企业。公司主营研究开发、生产CMOS图像传感器、图像感应集成芯片及相关零部件和模具、硅基液晶产品及相关零部件。公司采用最先
[家用电子]
基于51单片机的智能恒温箱设计--数码管显示
一.硬件方案 根据恒温箱控制器的功能要求,并结合对51系列单片机软件编程自由度大,可用编程实现各种控制算法和逻辑控制。所以采用AT89C52作为电路系统的控制核心。按键将设置好的温度值传给单片机,通过温度显示模块显示出来。初始温度设置好后,单片机开启输出控制模块,使电热器开始加热,同时将从数字温度传感器DS18B20测量到的温度值实时的显示出来,当加热到设定温度值时,单片机控制声光报警模块,发出声光报警,同时关闭加热器。当自然冷却到设定温度50摄氏度以下时,单片机再次启动加热器,如此循环反复,以达到恒温控制的目的。 主要由51单片机+最小系统+数码管显示模块+数码管驱动模块+温度采集模块+蜂鸣器模块+LED指示灯模块+继电器驱
[单片机]
基于51单片机的智能恒温箱设计--数码管<font color='red'>显示</font>
区分AR/VR/MR/CR技术 谁能主宰显示未来
区分AR/VR/MR/CR显示技术     如今的显示生活被各种“R”充斥着,都令人产生一种你不知道VR、AR是什么都不好意思出去跟别人聊天的感觉。但是各种“R”之间到底有多大的区别呢,本期我们就形象化地对几种“R”作比较,为大家今后能够愉快地与他人聊起VR、AR扫除障碍。 区分AR/VR/MR/CR技术 谁能主宰显示未来     虚拟现实、增强现实等显示技术作为近未来最炙手可热的技术被厂商和用户所追捧,其发展前景和应用范围是不可估量的,不计其数的行业元老、IT巨头、新兴团队、传统厂商纷纷跳出来说自己要从事这些行业的产品研发。 国内如今热炒的是VR概念     国内如今热炒的是VR概念,其疯狂程度甚至
[家用电子]
调查显示20%智能手机使用双核处理器
        在去年双核处理器得到了广泛的普及,根据Strategy Analytics公司的手机组件分析(HCT)统计,目前有近20%的智能手机采用双核处理器。 三星在双核处理器市场份额中占据主导地位,拥有60%的出货量,其后依次是高通、德州仪器和NVIDIA。三星占据出货量第一的位置要得益于苹果iPhone的热销,因为三星生产制造了苹果A5处理器。   在2011年双核处理器中,单独应用程序处理方式的异步多核处理器占据了90%。这是因为单核的应用程序处理器更加容易整合,在2011年有72%的单核处理芯片被整合到一起,成为双核处理器。   作为报告中的一部分Strategy Analytics公司给NVI
[手机便携]
S3C2440-RTC中断
RTC(Real Time Clock)单元能在系统断电时通过系统备用电池供电,RTC能通过ARM的STRB/LDRB指令传输8位BCD数据到CPU,该数据包括时,分,秒,小时,天,月和年,RTC使用一个外部32.768KHZ的晶体也能执行报警功能。 报警功能。在掉电模式或正常工作模式下,RTC能够在指定的时间产生报警信号。在正常工作模式下,报警中断(ALMINT)被激活。在掉电模式下,电源管理苏醒信号PMWKUP也与ALMINT一样处于激活状态。RTC的报警寄存器(RTCALM)可以决定报警的使能或禁止和报警时间的设置条件。 节拍中断。RTC节拍时间用于中断请求。TICNT寄存器具有一个中断使能位,同时其中的计数值用于中
[单片机]
S3C2440-RTC中断
高密度LED显示屏灰度显示方案设计
  深入研究 LED 器件的 半导体 特性,对高密度L ED 矩阵 显示屏 提出了实现灰度 显示 的解决方案,并给出了 测试 电路对该方案进行验证。实验表明,通过这种方案实现的LED灰度显示可以同时兼顾显示屏的 亮度 和灰度。   信息显示是信息科学技术的重要环节之一, 光电 综合显示作为人机联系的桥梁得到了越来越广泛的应用。在相当长的一段时间内,信息显示技术停留在阴极射线显像管(CRT) 时代,但CRT 作为真空器件,其自身一些固有的缺点限制了它在某些领域的应用范围。为了解决CRT 显示器带来的这些问题,国内外都在加紧进行 平板显示 器( FDP) 的研制与开发。在众多的FDP 中,发光二极管(LED) 显示器有其自身固有的
[电源管理]
高密度LED<font color='red'>显示</font>屏灰度<font color='red'>显示</font>方案设计
10种应当淘汰的技术 落后企业标志
  “小车不倒只管推”在IT组织内也很流行。企业中的许多技术都已经“老态龙钟”,如果不及时更新,IPv6和统一通信等技术就无法发挥它们的潜力,更不要说不断 攀升的能源价格了。下面是IT机构应当认真审查的产品清单   Windows 2000操作系统   对Windows 2000的扩展支持将在2010年结束,因此,对于仍然在运行这种操作系统的企业而言,现在就应当制定升级计划了。由于Linux服务器操作系统已经有了长足的进步,评估非微软系的新平台也是非常重要的。   CRT显示器   真正的问题是:在使用CRT显示器的能耗、冷却、回收成本高于更换它的成本前,企业还可以在多长时间内坚持使用CRT显示器?   考虑虚拟技术
[焦点新闻]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved