gpt4 book ai didi

c - bmp 24 位文件格式上的蓝色 channel

转载 作者:太空宇宙 更新时间:2023-11-04 07:36:07 25 4
gpt4 key购买 nike

我想在 24 位 bmp 图像上找到蓝色区域。我怎样才能找到蓝色 channel ?蓝色 channel 的接入方式有哪些?

最佳答案

24 位位图 (.bmp) 图像具有 54 字节的 header 。之后是像素数据。每个像素使用 3 个字节:依次为蓝色、绿色、红色。

要看到这一点,请在 Paint 中制作一个 1x1 像素的图像并将一个像素设为蓝色。如果您在十六进制编辑器中查看 .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 .希望这对您有所帮助!

关于c - bmp 24 位文件格式上的蓝色 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8786650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com