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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
forfrends
Вымогатель припоя
Сообщения: 546
Зарегистрирован: Вс дек 30, 2012 00:32:06
Откуда: Николаев / Украина
Контактная информация:

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

Сообщение forfrends »

Всем привет!
Пытаюсь разобраться в структуре файла 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 КБ) 396 скачиваний
Сделать своими руками всегда интересней чем просто купить и пользоваться
Реклама
Аватара пользователя
Oxford
Опытный кот
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск
Контактная информация:

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

Сообщение Oxford »

Для первого размер файла: 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 не забывай.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Реклама
forfrends
Вымогатель припоя
Сообщения: 546
Зарегистрирован: Вс дек 30, 2012 00:32:06
Откуда: Николаев / Украина
Контактная информация:

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

Сообщение forfrends »

Спасибо, разобрался, сначала идет младший байт, а потом старший, а я считал наоборот, из-за этого и не сходилось
Сделать своими руками всегда интересней чем просто купить и пользоваться
Аватара пользователя
Oxford
Опытный кот
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск
Контактная информация:

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

Сообщение Oxford »

Файлы смотреть лучше в WinHex
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
АлександрЛ
Друг Кота
Сообщения: 43910
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

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

Сообщение АлександрЛ »

Раньше можно было в Нортон-коммандере- нажать Ф3, а потом Ф4- файл открывался в двоичном виде, а столбец справа- во вполне "читаемом" виде..
Реклама
jcxz
Мудрый кот
Сообщения: 1731
Зарегистрирован: Вт авг 15, 2017 10:51:13

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

Сообщение jcxz »

[uquote="АлександрЛ",url="/forum/viewtopic.php?p=3701880#p3701880"]Раньше можно было в Нортон-коммандере- нажать Ф3, а потом Ф4- файл открывался в двоичном виде, а столбец справа- во вполне "читаемом" виде..[/uquote]Сейчас то же самое можно сделать в DosNavigator-е. 8)
Только молодёжь уже не знает этих названий...
Реклама
Аватара пользователя
АлександрЛ
Друг Кота
Сообщения: 43910
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

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

Сообщение АлександрЛ »

[uquote="jcxz",url="/forum/viewtopic.php?p=3702701#p3702701"]Только молодёжь уже не знает этих названий...[/uquote]
Да ладно, "молодёжь".. 18 лет назад, на уроке информатики мой сын начал какую- то команду набирать из "командной строки ДОС"- училка в ступор впала.. А тогда ещё "основной" была "Вынь98".. :))) :)))
Ответить

Вернуться в «Разные вопросы по МК»