BMP图像点阵数据获取方法

更新时间:2024-03-05 作者:用户投稿原创标记本站原创 点赞:15329 浏览:68553

【摘 要】对BMP图像文件格式进行了分析,实现对任意位图图像点阵值的快速获取,并利用VB编程软件对BMP图像文件的数据进行转换,使之成为可以在LCD液晶显示器中直接应用的点阵数据.


【关 键 词 】VB BMP图像 LCD显示 点阵

1.引言

LCD是一种平板薄膜显示器件,与其他的显示方式相比有着显著的优点,除了功耗低以外,它还具有美观、显示工作电压低、抗干扰能力强.因此它的应用非常广泛,从电子表到计算器、从袖珍式仪表到便携式微型计算机以及一些文字处理机都用到了LCD.目前,LCD有段式和点阵式2种,在只涉及数据显示及简单字母提示时,智能仪器通常采用段式LCD,而要在LCD上显示BMP图像,需要提取BMP图像的点阵数据.然而,如何通过简单的途径在没有图形驱动模块的点阵式液晶显示器中显示各种静态图像,成为长期困扰设计者的问题.怎样通过比较简单的手段将图像移植到液晶示器中,就是本文阐述的主要内容.文章通过分析传统图像点阵获取原理以及BMP图像的存储格式,找到它们之间的内在联系,从而实现了BMP图像点阵的快速获取.

2.BMP位图文件分析

BMP位图文件是Windows采用的图像文件存储格式.在Windows下运行的所有图形处理软件都支持此文件格式.BMP分为设备相关位图和设备无关位图两类,Windows3.0之前的称为设备相关,Windows3.0之后的称为设备无关.BMP文件主要由四部分组成:文件头、信息头、颜和图像数据.其中文件头占14个字节、信息头占40个字节.颜的大小是随着像素点位密度变化而发生变化的,而对于每个像素点来说,BMP图像文件格式可以使用1、4、8或24位来表示 ,即一个像素点能对应几位数据,1 表示位图最多有两种颜色,黑色和白色.图像数据阵列中的每一位表示一个像素:4 表示位图最多有16种颜色,每个像素用4位表示;8表示位图最多有256种颜色,每个像素用8位表示,以此类推.这里我们主要以单色的64×64(BMP)图像为例进行介绍.

由于64×64图像点阵对应着64×64等于4096个点,而对于BMP图像来说,每个像素点就对应一个字节.所以一幅64×64像素点的BMP图像它所占的空间大小为4K.此处我们例举一幅64×64点阵的单色BMP图像作为分析对象,如图1所示.

我们利用UltraEdit文件编辑器把图1打开,可以看到所有的数据.如图2所示.

BMP图像文件的首部是由2部分组成:前14个字节定义文件头、后40个字节定义信息头.文件头包含BMP图像格式文件的识别部分、文件的大小以及图像数据开始处的偏移地址,信息头部分包括图像的宽度、高度、每像素中位的数量.

3.BMP位图文件点阵数据获取

3.1 BMP文件的图像数据在内存的存放方式

BMP图像的每一扫描行由表示图像像素的连续的字节组成,每一行的字节数取决于图像的颜色数目和用像素表示的图像宽度.扫描行是由底向上存储的,这就是说,阵列中的第一个字节表示位图左下角的像素,而最后一个字节表示位图右上角的像素.形象一点说,就好像在该图的下面平放了一面镜子,而BMP文件图像数据就是该图在内存中的镜像.

3.2 BMP文件中读取点阵的程序设计

VB是一种简单易学的可视化编程软件,利用VB可以快速地开发软件,缩短开发周期.本文就是利用VB对BMP图像文件进行处理,使之转换为点阵数据.具体的实践算法如下:

(1)将BMP文件视作为二进制文件.

(2)对数据进行处理的主要思路及方法是:

由以上分析可知,BMP文件的偏移字节数等于62字节.所以程序在处理是要从第63字节开始.在此算法中,首先定义两个数组bit()和bit1().把BMP文件按行存入开辟好的数组bit1()中.把已存放数组bit1()中的BMP数据按8个像素为单位分别转换成0、1数据存入到数组bit()中.最后把数组bit()中的数据按行倒置输出到文件中.BMP图像被转换成0、1文本文件后,通过编程读取文件中的数据,将文本数据转化为可视化的点阵图像,最后输出的点阵图像.

4.结束语

利用VB将BMP图像文件转化成LCD显示用的点阵数据,为在LCD上直接显示BMP图片提供了极大的方便,本文给出了BMP图像点阵获取方法,原理简单,实现方便,具有很高的实际应用价值.