读书人

BMP文件格式小小结

发布时间: 2012-12-27 10:17:10 作者: rapoo

BMP文件格式小总结

?1.BMP是一种与硬件无关的图像文件格式,它所占用的空间很大,不采用其他任何压缩,它的深度可选1个字节,4个字节,8个字节,24个字节,我们通常所说的真彩色就是24个字节,BMP图像的扫描方式是从下往上,从左到右,当文件的宽度不是4的倍数是,要通过补0来使文件是4的倍数,但是由于BMP图像文件占得内存太大,我们平常都不用这种格式。

?

?

2.BMP文件结构

?? 位图文件 头数据结构,它包含BMP图像文件的内容,显示内容等信喜,大小是14个字节。

?? 位图信息数据结构,它包含了图像的宽和高,通常我们要显示一张图片时,必须要把这两个数据从图像中读出来。

?? 调色板 像我们说的24位真彩色图的BMP不需要调色板

?? 位图数据? 这一项比较重要,当要显示一张图片时,一定要遍历整个图片,从下往上,从左往右依次得到三种不同的颜色。

3.BMP文件解析实现

要将既定位置的图片显示出来,必须要用到输入流,因为输入流是将硬盘中的数据读到内存中来,不能只用输入流,还必须配合使用dataInputStream?或者是BufferedInputStream,


?操作中遇到的问题:虽然BMP文件解析的思路比较明确,但是在实际操作中经常遇到问题:比如我所有程序写好之后,我图片没有改为BMP格式,出现java.lang.outOfmemorryError错误,还有当我画图时,用的是g.fillOval(w,h,w,h)方法时,出现的图形刚开始怪模怪样,到最后才呈现出源图的效果。还有就是那个不是4的倍数时,为什么是if(!(image_width*3%4==0))而不是if(!image_width%4==0),

?

?

1 楼 林晓盼 2011-06-02 写得不错!代码也清晰,向你学习!

读书人网 >编程

热点推荐