Извлечение растрового изображения из файла - PullRequest
2 голосов
/ 14 мая 2009

учитывая довольно сложный файл неизвестной спецификации, который помимо прочего содержит несжатый файл растрового изображения (.BMP), как бы вы извлекли его в Python?
Сканирование на наличие тэга «BM» и определение, «похожи» ли следующие байты на заголовок BMP?

Ответы [ 2 ]

4 голосов
/ 14 мая 2009

Да, единственное, что вы можете сделать, это найти в файле маркер 'BM', вытащить следующие данные в BITMAPFILEHEADER и соответствующий BITMAPINFO и посмотреть, как выглядят значения в нем действительный (то есть, что размеры разумны, глубина цвета разумна и т. д.).

Как только вы нашли что-то, что выглядит разумным, извлеките эти данные и передайте в библиотеку, упомянутую в другом ответе.

4 голосов
/ 14 мая 2009

Я бы использовал Python Imaging Library PIL и попробовал данные Если он может разобрать его, то это действительное изображение. Когда он выдает исключение, то это не так.

Вам нужно искать начало изображения; если вам повезет, программа чтения изображений будет игнорировать мусор после данных изображения. Если этого не происходит, используйте двоичный поиск, чтобы найти конец изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...