2

Я использую imagemagick convert для преобразования этого изображения http://i.imgur.com/P1uqj9K.jpg в bmp. Однако по какой-то причине инструмент, который я использую, не любит растровое изображение. Если я сохраню изображение в формате png и преобразую его в 24-битную BMP, это нормально. Я попытался использовать следующую команду, но мне это не нравится.

convert -verbose  -depth 8 -type truecolor infile outfile.bmp

Глядя на файл, я вижу, что «плохой» BMP имеет

BMÊp1 (0's) Š

Хороший имеет

BMvp1 (0's) 6

1 ответ1

1

У меня тоже были проблемы с конвертацией BMP. Я обычно указал BMP3:outfile.bmp и обычно получаю 24-битные файлы BMP. иногда я получаю 8-битный BMP при преобразовании файлов JPEG. Я только что попробовал -type truecolor (увидев его здесь), и теперь похоже, что я получаю 24-битный BMP в тех случаях, когда я использовал только 8 бит.

Я также использую эти ключи:

-units PixelsPerInch -density 72 -compress None -depth 24

-depth 24 должен делать 24-битный BMP (глубина -8 в вашем случае также может вызывать проблемы), но, как я сказал, я иногда получаю 8 бит даже с указанными 24.

-units и -density исправили проблему, когда иногда я получал 0 для полей biXPelsPerMeter и biYPelsPerMeter в заголовке BMP (хотя, похоже, это не вызывало проблемы). кстати я не нашел хорошего объяснения этих 2 полей.

-compress None не требовалось, потому что иногда преобразование генерировало сжатый BMP - логической причины для этого не было найдено.

надеюсь, это поможет, но я не эксперт в этом вопросе - я просто попробовал несколько вещей, осмотрелся с помощью Google и нашел настройки переключателя выше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .