gpt4 book ai didi

c++ - 彩色位图文件转为黑白

转载 作者:行者123 更新时间:2023-11-30 17:51:27 26 4
gpt4 key购买 nike

我需要将彩色位图文件转换为黑白。

我知道当我读取一行像素时,它需要除以 4。第一个问题,为什么? :)

如果它不能被 4 整除,我需要添加零直到它被 4 整除。

我遇到的主要问题是读取这些零。谁能告诉我如何读取这些零?

另外,如果有任何地方有指南,我很想看看。

谢谢!

最佳答案

除法用于将图像的每一行对齐到特定边界(在本例中为 32 位)。您可以使用模数学确定每行末尾的额外字节数。

int zero_padding_count = image->actual_width_in_bytes % 4;

这将产生一个介于 0 和 3 之间的值。要进行处理,您可以执行类似的操作。

char *source = image->buffer;
char *dest = some_buffer;

for(int row = 0; row < image->actual_height; row++)
{
for(int column = 0; column < image->actual_width_in_bytes; column++)
{
// do your conversion here
*source++ = dest++;
}
// Now adjust the source pointer for the number of padding bytes at the end
// of the line
source += zero_padding_count;
}

关于c++ - 彩色位图文件转为黑白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16721135/

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