bmp文件解码
- 格式:pdf
- 大小:262.86 KB
- 文档页数:10


・14・ Computer era No.2 2002 如何把信息隐藏在24位BMP图像中 李金刚,封春芳 1引言 随着信息技术网络化的飞速发展,信息安全技术显得 越来越重要。人们为了使存放的信息更安全,应用了各种 方法如利用压缩软件把文件压缩后加上密码 或者把自 己的文档直接利用WORD、WPS等加密码功能加密。这 几种方法,在利用相应的软件打开时,一般都要求辅入密 码,这就等于告诉别人这个文件有密码.因而它们十分容 易受到攻击 事实上,现在网上已经有很多的破解程序, 利用常规方法加密,其安垒性就大打折扣了。 2 BMP图像隐藏文件原理 笔者在利用Delphi5编制图像处理程序时,使用了改 变画布上一个点RGB值的方法,发现如果只改变R、G、 B的低位部分,例如只改变低二位甚至低三位时,肉眼很 难看出其变化 此时我们就想,可 利用这几个不起眼的 低位部分,存放一些信息,也就是说可 把一个文件隐藏 在一幅BMP图像中,使人的肉眼很难发现.这样我们就 利用自己的方法.达到了文件加密、隐藏的目的。而别凡 看到一幅图,根本想不到,图里面有其他信息,安垒性就 大大提高了 具体如下: 在这里分别改变红色的低三位、蓝色的低三位、绿色 的低二位,这样一个点我们就可以存放一个字节的信息. 其对图像的影响我们可以这洋估算:对红色 蓝色的影响 为7/255=O.027,对绿色的影响更小,是3/255= 0.012 我们之所以取3、3、2个字节,是想简化编程.把 一个需要隐藏的字节,对应图形上的一个点 我们使用 Delphi5提供的画布(Canvas),可以撇开BMP图像的具体 存放格式,同洋地使编程简化 通过这种方法,隐藏了本 文的一幅图像(图1), 及原始图像(图2)。 3编程注意的几个问题 首先.我们使用的是24位BMP图像,因为低于24位 的BMP图像,文件不按照RGB的格式存放,当我们保存 文件时,一些信息要丢失,显然这不是我们希望的,因此 我们在利用Image打开一幅图像时,应使Image的picture Bitmap.PixelFormat属性为pt ̄24bit, 强制Delhpi按24位 BMP图像处理。 图
嵌入式Linux系统的图片解码和显示方法详解
嵌入式Linux系统在如今的物联网应用中扮演着重要的角色。其中,图片解码和显示是嵌入式系统中常见的需求,它们对于展示图形化界面、实现图像处理等方面都具有重要意义。本文将详细讨论嵌入式Linux系统中的图片解码和显示方法。
一、图片解码方法
在嵌入式Linux系统中,常见的图片格式有JPEG、PNG、BMP等。针对不同的图片格式,可以采用不同的解码方法。
1. JPEG解码
JPEG是一种广泛应用于图像压缩和存储的格式。在嵌入式Linux系统中,常用的JPEG解码库有libjpeg和libturbojpeg等。
libjpeg是一个开源的JPEG解码库,广泛应用于多个平台。该解码库提供了一系列的API接口,可以方便地在嵌入式Linux系统中进行JPEG解码操作。通过使用libjpeg库,可以将JPEG图片解码为RGB格式,从而在系统中进行后续的图像处理或显示。
libturbojpeg是libjpeg的增强版,它在性能上有一定的优化,特别适用于有限的资源嵌入式系统。libturbojpeg同样提供了丰富的API接口,可以实现对JPEG图片的高效解码。
2. PNG解码
PNG是一种无损的位图格式,广泛应用于图像存储和传输。在嵌入式Linux系统中,可以使用libpng库进行PNG图片的解码。
libpng是一个开源的PNG解码库,它提供了灵活的API接口,可以实现对PNG图片的解码和处理。通过libpng库,可以将PNG图片解码为RGBA格式,方便在系统中进行进一步的图像处理或显示。
3. BMP解码
BMP是一种非压缩的位图格式,可以直接在屏幕上显示。在嵌入式Linux系统中,可以通过解析BMP文件头和像素数据,实现对BMP图片的解码。
BMP图片的解码相对简单,只需按照文件格式解析头信息,提取像素数据,并根据颜色格式进行解析,即可获取图片的RGB数据。
常见图像文件格式
一、BMP图像文件格式
BMP是一种与硬件设备无关的图像文件格式,使用非常广,BMP文件所占用的空间很大。缺点超过了优点。
三、TIFF图像文件格式
TIFF (TaglmageFileFormat)图像文件是一种较为通用的图像文件格式。TIFF是现存图像文件格式中最复杂的一种。
四、 GIF文件格式
GIF(Graphics Interchange Format)的原义是"图像互换格式",是CompuServe公司在 1987年开发的图像文件格式。GIF文件的数据,是一种基于LZW算法的连续色调的无损压缩格式。其压缩率一般在50%左右,它不属于任何应用程序。目前几乎所有相关软件都支持它,公共领域有大量的软件在使用GIF图像文件。 GIF图像文件的数据是经过压缩的,而且是采用了可变长度等压缩算法。所以GIF的图像深度从lbit到8bit,也即GIF最多支持256种色彩的图像。GIF格式的另一个特点是其在一个GIF文件中可以存多幅彩色图像,如果把存于一个文件中的多幅图像数据逐幅读出并显示到屏幕上,就可构成一种最简单的动画。 GIF解码较快,因为采用隔行存放的GIF图像,在边解码边显示的时候可分成四遍扫描。第一遍扫描虽然只显示了整个图像的八分之一,第二遍的扫描后也只显示了1/4,但这已经把整幅图像的概貌显示出来了。在显示GIF图像时,隔行存放的图像会给您感觉到它的显示速度似乎要比其他图像快一些,这是隔行存放的优点。
五、JPEG文件格式
JPEG是joint Photographic Experts Group(联合图像专家组)的缩写,文件后辍名为".jpg"或".jpeg",是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。
bmp解码原理
BMP(Bitmap Image File)是一种常见的图像文件格式,其解码原理主要包括以下几个步骤:
1. 读取文件头信息:BMP文件以特定的文件头标识开始,用于标识该文件是一个BMP格式的文件。这些信息包括BMP文件的类型、大小、版本等。
2. 解析图像头信息:紧随文件头信息之后的是图像头信息,包括图像的宽度、高度、像素数、颜色深度等信息。这些信息用于确定图像的尺寸、颜色模式等。
3. 读取像素数据:根据图像头信息中的宽度、高度和像素数,读取相应的像素数据。BMP图像的像素数据按照一定的顺序存储,通常是按照行优先的顺序逐行读取。
4. 转换像素数据:由于BMP图像的像素数据是以特定的格式存储的,解码时需要将这些数据转换为可显示的像素值。这通常涉及到将颜色深度转换为实际的颜色值,以及进行必要的色彩空间转换等。
5. 显示图像:将解码后的像素数据送入显示设备,按照一定的显示模式进行显示,最终呈现出BMP图像的内容。
在解码过程中,需要注意一些细节问题,比如数据对齐、像素格式转换等。此外,还需要根据具体的BMP版本和编码方式进行相应的解码处理。