Здравствуйте, я пытаюсь найти ширину и высоту изображения 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, который является байтом высокого порядка.
ширина и высота - это ints.
Update -------- ширина и высота файла им в настоящее время работает с 298 является на 432 , когда я использую
for (i = 0; i <= 3; i++)
{
width = file_data[21 - i] | width << 8;
height = file_data[25 - i] | height << 8;
}
при запуске программы я получаю 298 от - 80
Почему вы так делаете? Скопируйте данные в структуру BITMAPINFO и получите доступ к полям напрямую. –
Я хочу попрактиковаться с побитовыми операторами. – john