Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Разбор файла BMP

Пн сен 16, 2019 12:40:18

Всем привет!
Пытаюсь разобраться в структуре файла BMP, но что-то не сходится. Прикрепляю архив с двумя BMP файлами, с которыми провожу эксперименты. Файлы идентичны, с той лишь разницей, что o1.bmp создан в фотошопе. Потом я его открыл в Паинте и без редактирования сохранил под другим именем: o0.bmp.
Открываю обе картинки в Блокноте и вижу что они разные:
Изображение
Смотрю в таблицу:
https://ru.bmstu.wiki/BMP_(Bitmap_Picture)

Пробую узнать размер файла (6 494 байт o0.bmp, и 6 496 байт o1.bmp):
Size: длина: 4 байта, смещение 2 байта:
o0.bmp : "^ "
o1.bmp : "` "

Для o0.bmp это символы в таблице ASCII https://istarik.ru/blog/programmirovanie/53.html:
94 - 01011110
25 - 00011001
32 - 00100000
32 - 00100000

Для o1.bmp это символы в таблице ASCII:
96 - 01100000
25 - 00011001
32 - 00100000
32 - 00100000

Как из этого набора символов получить размер файла?
Дальше интереснее и не понятнее (для меня). Пробую узнать ширину и высоту (384х134 пикселя):

Width: длина 4 байта, смещение 18 байт
Height: длина 4 байта, смещение 22 байт
Отсчитываю байты, получаю (они одинаковы у обоих файлов):
Width: "Ђ "
128 - 10000000
1 - 00000001
32 - 00100000
32 - 00100000

Height: "† "
134 - 10000110
32 - 00100000
32 - 00100000
32 - 00100000

Как из этого набора символов получить Ширину и высоту?
И т.д... На пример, Смещение изображения от начала файла: "> ", символ ASCII "64" и еще несколько "32"... как из этого высчитать начало самой картинки???
Если можете, разъясните мне. Спасибо
Вложения
BMP.rar
(2.1 KiB) Скачиваний: 356

Re: Разбор файла BMP

Пн сен 16, 2019 13:16:02

Для первого размер файла: 25 94 (десятичные значения) в HEX это 19 5E т.е. 0x195E = 6494 байта
Для второго размер файла: 25 96 (десятичные значения) в HEX это 19 60 т.е. 0x1960 = 6496 байт

Размер картинки
00 00 01 80 = 0x00000180 = 384
00 00 00 80 = 0x00000080 = 128

little-endian/big-endian не забывай.

Re: Разбор файла BMP

Пн сен 16, 2019 13:46:42

Спасибо, разобрался, сначала идет младший байт, а потом старший, а я считал наоборот, из-за этого и не сходилось

Re: Разбор файла BMP

Пн сен 16, 2019 14:45:13

Файлы смотреть лучше в WinHex

Re: Разбор файла BMP

Пн сен 16, 2019 18:42:33

Раньше можно было в Нортон-коммандере- нажать Ф3, а потом Ф4- файл открывался в двоичном виде, а столбец справа- во вполне "читаемом" виде..

Re: Разбор файла BMP

Ср сен 18, 2019 01:51:49

Раньше можно было в Нортон-коммандере- нажать Ф3, а потом Ф4- файл открывался в двоичном виде, а столбец справа- во вполне "читаемом" виде..
Сейчас то же самое можно сделать в DosNavigator-е. 8)
Только молодёжь уже не знает этих названий...

Re: Разбор файла BMP

Ср сен 18, 2019 02:17:21

Только молодёжь уже не знает этих названий...

Да ладно, "молодёжь".. 18 лет назад, на уроке информатики мой сын начал какую- то команду набирать из "командной строки ДОС"- училка в ступор впала.. А тогда ещё "основной" была "Вынь98".. :))) :)))
Ответить