Написать программу, разбирающую некоторые заголовки BMP-файла. Ограничения на структуру следующие:

Программа должна проверять, соответствуют ли входные данные (weasel2.4c.bmp) структуре BMP-файла, и выводить либо первое найденное несоответствие, либо информацию о файле:

  1. Если в начале файла нет сигнатуры "BM", выводится "Not a Windows BMP"

  2. Если поле «размер BMP-файла» не равно объёмы введённых данных, выводится "Incorrect size"

  3. Если размер DIB header не равен одному из известных, выводится "Incorrect header size"

  4. Если заданный размер картинки не равен вычисленному (с учётом возможного +2 и нулевого значения), выводится "Incorrect image size"

  5. В противном случае выводятся абсолютные значения ширины, высоты и глубины цветности картинки, а также метод упаковки (если не задан, то 0) и размер заполнителя (0 или 2)

…содержимое weasel2.4c.bmp…

82 73 4 0 0

В примере выше глубина цветности 4 бита на пиксель, следовательно, размер одной строки BMP равен 82 * 4 / 8 = 41 байт. Строка дополняется ещё тремя байтами до кратной 4 длины, и общий размер картинки оказывается 44 * 73 = 3212 байт.


CategoryHomework

LecturesCMC/PythonIntro2024/Homework_BmpParser (последним исправлял пользователь FrBrGeorge 2024-11-29 00:25:41)