Java对BMP图像处理

Windows位图(windows上位图是little endian)由四部分组成:
A.1,位图文件头部
A.2,位图信息头部
A.3,颜色表
A.4,位图的内容(位图由大量的bit组成)

下表来自HackJava,它描述了A1的结构
# of Bytes
Type Description
2
Character 文件类型,一般是BM开头
4
32-bit Int 文件大小,单位byte
2
16-bit Int 保留
2
16-bit Int 保留
4
32-bit Int 位图内容(A.4)开始的字节偏移


A.2部分的结构以下
# of Bytes
Type Description
4
32-bit Int 信息头的大小(字节数)
4
32-bit Int 位图的宽度(如1024像素)
4
32-bit Int 位图的高度(如768像素)
2
16-bit Int Number of bitplanes (should be 1)
2
16-bit Int 用多少个位去描述一个像素(1, 4, 8, or 24)
4
32-bit Int 使用的压缩类型
4
32-bit Int 若是使用了压缩,须要指定位图的实际大小
4
32-bit Int 每米的水平像素的数量(用于放大缩小) 
4
32-bit Int 每米的垂直像素的数量(用于放大缩小) 
4
32-bit Int 实际用到的颜色数量
4
32-bit Int 较重要颜色的数量(用于减小颜色数)