BMP图片格式具体解析ITeye - 千亿集团

BMP图片格式具体解析ITeye

2019年03月09日15时08分11秒 | 作者: 冬萱 | 标签: 图片,色彩,字节 | 浏览: 1616

 

色彩表中的个数有 biBitCount 来断定。当biBitCount=1,4,8 时,别离有 2,16,256 个色彩 ; 当biBitCount=24 时,没有色彩表项。

 

在windows中每个色彩是 b g r a 四个字节保存,a代表透明度,假如是1位位图,那么色彩表总共站八个字节,假如是4位位图,色彩表站84个字节,假如是8位位图,需求表明256中色彩,每种色彩站四个字节,所以色彩表总共站1024个字节。

 

256色的时分,windows中,位图数据的巨细就是0-255,代表着调色板中的数据,每次读八个为就是一个像素信息,其他位图相似。

 

④ 位图数据

 

位图数据记载了位图的每一个像素值,记载次序是在扫描行内是从左到右, 扫描行之间是从下到上。位图的一个像素值所占的字节数:

 

当biBitCount=1 时, 8 个像素占 1 个字节 ;

 

当biBitCount=4 时, 2 个像素占 1 个字节 ;

 

当biBitCount=8 时, 1 个像素占 1 个字节 ;

 

当biBitCount=24 时, 1 个像素占 3 个字节 ;

 

Windows规则一个扫描行所占的字节数有必要是4 的倍数 ( 即以 long 为单位 ), 缺乏的以 0 填充,详细数据举例:

 

也就是说,写入图片一行的像素信息的时分,每一行的字节数都有必要是4的倍数,缺乏的在后面补0,然后才又开端写入下一行的像素信息。

 

位图数据,其实就是在描绘图片上每一个点的色彩,在windos中,是先写入该图片的最有一排像素点,从下往上,从左往右,没写完一排,假如写入的字节数不是4的倍数,就会补0,比方写入了3个字节,就不要再补一个字节的0,然后开端写下一排的数据。

 

关于单色位图,只需求一个位就能够表明其一切的色彩或许,是非,关于16色位图,也就是有16中色彩的或许,那么需求四个位就能够表明16中或许,关于256色位图,那么需求8个位才干表明256中状况,关于真彩色,也就是表明一切的色彩,那么需求三个字节才能够表明一切状况(透明度不算),关于单色,16色,256色位图来说,位图数据读到的是调色板上的索引,经过这个索引在调试版中找到对应的色彩,然后显现在屏幕上。所以关于单色位图,他的调色板只要是非两种色彩,16色位图,他的调色板有16种色彩,256色的调色板有256中色彩,假如是24位位图,他的位图信息,就是保存的实在色彩,每读三个字节就表明了一个像素点的色彩,不需求再进行调色板查找对应的色彩。

 

 

 

前语:windows中存入根本数据,是先存入了低位,再存入高位。

 

******************************************************************************************

 

首要完结翻开一张bmp24位位图图片:

 

1、使用体系画图板画一张图片,保存的时分挑选24位位图,因为24为位图没有调试板,位图数据区保存的是每个像素点的色彩,不需求咱们进行调试板的转化,一切有利于初学者关于bmp格局的了解,完结了24位的再来看其他位图的。

 

2、使用swing写一个图形界面,中心留一个panel区域用于显现图片。将图片的每一个色彩保存到二维数组中,然后画在面板上,就翻开了一张图片。

 

3、读取到图片的首要信息:

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表千亿集团立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章