gpt4 book ai didi

c++ - 在 C++ 中打开位图

转载 作者:行者123 更新时间:2023-11-30 02:03:38 25 4
gpt4 key购买 nike

一开始对不起我的英语。

我的目的是从位图中加载 rgb 数组。但是图像的大小与高度 * 宽度 * 3 的乘积之间存在差异。当我阅读有关 bmp 格式的信息时,我注意到 widht % 4 为 != 0 时,我必须在宽度上添加一些数字以达到平衡。 (width%4==1 我必须加 3,width%4==2 我必须加 2 等等)图像大小为 1 442 454 字节,高度为 601,宽度为 801。804 * 600 * 3 == 1 441 800 并且它大于图像的大小。801 * 600 * 3 == 1441800 它必须小于图像大小(即使我添加了 54 位 header )。我必须做什么才能正确阅读它? ( header 已正确加载)

最佳答案

请注意,每一行都被填充为 4 字节(不是像素)的倍数。

因此,如果每行有 801 个像素,并且每个像素为 3 个字节 (RGB),则每行有 801*3=2403 个字节,这将用一个额外的字节填充到 2404 个字节。因此,位图大小将为 601*2404=1444804 字节。

但是,如果您的行宽只有 800 像素,那么每行有 800*3=2440 字节,这已经是 4 字节的倍数,因此不会有额外的填充字节,位图大小将为 601*2400=1442400字节。对于 54 字节的 header ,这给出了 1442454 字节。

结论:您的图片大小实际上是 801 x 600,而不是 801 x 601。

关于c++ - 在 C++ 中打开位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11604050/

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