Прежде всего, мой вопрос отличается от Как мне преобразовать изображение в 2 бита на пиксель? и, к сожалению, его решение не работает в моем случае ...
Мне нужно преобразовать изображения в формат BMP с оттенками серого 2 бита на пиксель. Образец изображения имеет следующие свойства:
Color Model: RGB
Depth: 4
Is Indexed: 1
Dimension: 800x600
Size: 240,070 bytes (4 bits per pixel but only last 2 bits are used to identify the gray scales as 0/1/2/3 in decimal or 0000/0001/0010/0011 in binary, plus 70 bytes BMP metadata or whatever)
Шестнадцатеричные значения начальной части образца изображения BMP:
Цифры 3 представляют собой белые пиксели в начале изображения. Ниже находятся несколько нулей, единиц и двоек, представляющих черный, темно-серый и светло-серый:
С помощью приведенной ниже команды
convert pic.png -colorspace gray +matte -depth 2 out.bmp
Я могу получить визуально правильное четырехуровневое изображение в оттенках серого, но неправильную глубину или размер на пиксель:
Color Model: RGB
Depth: 8 (expect 4)
Dimension: 800x504
Size: 1,209,738 bytes (something like 3 bytes per pixel, plus metadata)
(no mention of indexed colour space)
Пожалуйста помоги...
wine
. Можете ли вы предоставить название продукта и ссылку на производителя модуля, и, если пойдет дождь или мне станет скучно, я могу написать версию для Mac / Linux. Но никаких обещаний. - person Mark Setchell   schedule 04.03.2016-type palette
в вашу команду. - person Mark Setchell   schedule 04.03.2016-type palette
, не сработало. все еще получаю 3 байта на пиксель. - person yy502   schedule 05.03.2016convert input.png +matte -colors 4 -depth 8 -colorspace gray pgm:- | yourProgram > 2bpp.bmp
. Или то же самое, но с более легким NetPBMpngtopam input.png | pamcolors 4 ... | yourProgram
. - person Mark Setchell   schedule 05.03.2016