您好我试图仅使用按位运算符来查找BMP图像的宽度和高度。 这是我到目前为止所尝试过的。
for (i = 0; i <= 3; i++)
{
width = file_data[i + 18] | width << 8;
height = file_data[i + 22] | height << 8;
}
这就是我所知道的。宽度在字节19,20,21和22中找到。字节19是低位字节,后跟20然后是21,字节22是高位字节。
找到高度的高度,以字节23,24 25和26为单位。字节23是低位字节,后跟24然后是25,字节26是高位字节。
宽度和高度是整数。
更新-------- 我目前使用的文件的宽度和高度是298乘432 当我使用
for (i = 0; i <= 3; i++)
{
width = file_data[21 - i] | width << 8;
height = file_data[25 - i] | height << 8;
}
当我运行程序时,我得到298 -80
答案 0 :(得分:0)
您的代码是向后的,尽管您的描述是正确的。 file_data[18]
是位图宽度的最低有效字节,但您将其置于width
变量中最重要的字节。同样适用于height
。要么将循环反转为倒计时,要么将索引更改为减去而不是添加。