Обновление с 9.10 по 10.04

convert из ImageMagick может это сделать.

Например, 8-разрядная шкала серого 2x3:

printf '\x00\xFF\x88\xFF\x00\xFF' > f

Затем:

convert -depth 8 -size 3x2+0 gray:f out.png

Объяснение команды:

-depth 8: каждый цвет имеет 8 бит -size 2x3+0: 2x3 изображение. +0 означает начало со смещением 0 в файле. Если есть заголовки метаданных, вы можете пропустить их со смещением. gray:f: входной файл f, а формат gray, как определено в http://www.imagemagick.org/script/formats.php. Эта странная нотация используется, потому что ImageMagick обычно определяет формат из расширение, но здесь нет расширения.

Теперь проблема заключается в том, как просмотреть вывод. Прямой eog:

eog out.png

не очень хорош, потому что изображение слишком мало, и если вы увеличиваете масштаб eog, использует алгоритм отображения, который смешивает пиксели, что лучше для большинство фотографий, но не в нашем случае. Я нашел две возможности:

-depth 8: каждый цвет имеет 8 бит convert out.png -scale 300x200 out2.png. -scale требуется вместо -resize, так как -resize по умолчанию помещает пиксели вверх подобно eog.

Выход:

Пример RGB:

printf '\xFF\x00\x00\x00\xFF\x00\x00\x00\xFF' > f
convert -depth 8 -size 3x1+0 rgb:f out.png

Протестировано на Ubuntu 16.04, ImageMagick 6.8.9.

1
задан 23 November 2012 в 12:33

0 ответов

Другие вопросы по тегам:

Похожие вопросы: