bmp图片解析

本文详细介绍了BMP位图格式,包括不同颜色格式如单色、16色、256色、16位、24位和32位的原理,以及颜色空间、色深、调色板和数据存储结构。特别提到了16位的1R5G5B5和R5G6B5格式,以及32位带有的alpha通道在透明效果中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、bmp是微软提供的位图,是其他格式图片的基础。编程中用到的多是bitmap,而其他则是占用磁盘空间小的,进行了压缩技术的图片格式

2、bmp格式有单色,16色,256色,16位,24位,32位格式。

3、单色,16色。。指的是颜色空间,即色域,色深。其中单色只有黑白2色,1位即可表示。而16位中有1R5G5B5或者R5G6B5两种格式。一般采用位移的方法来取出每个通道的值。32位则是在24位基础上加上了alpha通道。其在内存中存储是B8G8R8A8格式。一般的图片查看软件看带有alpha通道的bmp时,一般透明的背景还是白色。但是在具体的比如flash中或者游戏的应用程序中,可以解析出alpha通道的值。用windows的GDI+中的alphablend可以进行透明度bmp绘制(此bmp必须是带有alpha通道的才能解析)。

4、单色、16色、256色有调色板,其中在bmp的数据域存放的是调色板的索引,其调色板采用的是R8G8B8RES8,其色深已经相当广了,已经有很多颜色人为辨别不出区别了。所以调色板中是选取了部分颜色作为需要的色域。而16位,24位,32位则不需要颜色表。在ps中可以查看bmp的颜色表。单击模式->颜色表

5、16位采用的是1R5G5B5或者R5G6B5,对于1R5G5B5来说1位高位是预留的,red,green和blue的位数均为5位,那么表示的最大值为31,则作为三原色来说,其每个分量的最大值表示的就是这个值的颜色,即(r:31,g:0,b:0)表示红色,(r:0,g:31,b:0)表示绿色,(r:0,g:0,b:31)表示蓝色,(r:0,g:0,b:0)表示黑色,(r:31,g:31,b:31)表示白色。将每个分量组合成word类型的rgb,那么则是进行位移操作进行运算得到。(十六进制:$03e0),

6、24位是B8G8R8,在内存中表示是blue、green、red。

7、32位在24为基础上,在最低位加入了alpha一个字节。在ps中可以查看三原色以及alpha通道。程序或者ps都可以实现在24位不能透明显示的bmp格式上增加透明的功能。

8、bmp数据结构中,fileheader中的offbit表示数据区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值