bmp 24位文件格式的蓝色通道

时间:2012-01-09 10:01:49

标签: c bmp 24-bit

我想在24位bmp图像上找到蓝色区域。我怎样才能找到蓝色通道?访问蓝色通道的方法是什么?

2 个答案:

答案 0 :(得分:2)

24位位图(.bmp)图像的标题为54字节。之后是像素数据。每个像素使用3个字节:蓝色,绿色,红色,按顺序。

要看到这一点,请在绘画中制作1x1像素图像,并将一个像素设为蓝色。如果你在hexeditor中查看.bmp文件,你会看到第55个字节的值为FF(蓝色),而之后的2是00(没有绿色,没有红色)。当然,如果你编写一个读取所有字节的C程序,你也可以看到这个。如果您打印从第55个字节到结束的值,您将看到相同的内容。

像素数据需要对齐,这称为步幅。步幅计算如下:

stride = (width * bpp) / 8;

在3x3 bmp中,步幅为(3 * 24)/ 8 = 9.此值需要四舍五入为4的整数(在本例中为12),因此每行需要3个额外字节正确对齐位。因此,如果所有字节都是蓝色,则在54字节之后,您将拥有:

FF 00 00 FF   00 00 FF 00   00 00 00 00
FF 00 00 FF   00 00 FF 00   00 00 00 00
FF 00 00 FF   00 00 FF 00   00 00 00 00

对于4x4 bmp,stride =(4 * 24)/ 8 = 12.12可被4整除,因此不需要额外的字节。对于5x5 bmp,stride =(5 * 24)/ 8 = 15,因此每行需要1个额外字节。

要了解有关bmp文件格式的更多信息,请查看this wikipedia page。希望这有帮助!

答案 1 :(得分:0)

  

24位像素(24bpp)格式支持16,777,216种不同颜色   并且每3个字节存储1个像素值。每个像素值定义   像素的红色,绿色和蓝色样本(RGBAX中为8.8.8.0.0)   符号)。特别是顺序(蓝色,绿色和红色,每个8位)   每个样本)。

...来自here