使用按位运算符查找bmp图像的宽度和高度

时间:2014-10-10 00:50:28

标签: c++ image bmp

您好我试图仅使用按位运算符来查找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

1 个答案:

答案 0 :(得分:0)

您的代码是向后的,尽管您的描述是正确的。 file_data[18]是位图宽度的最低有效字节,但您将其置于width变量中最重要的字节。同样适用于height。要么将循环反转为倒计时,要么将索引更改为减去而不是添加。