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
используется алгоритм отображения, который смешивает пиксели, что лучше для большинства изображений, но не в нашем случае. Я нашел две возможности:
gimp out.png
, Редакторы изображений должны показывать каждый пиксель.
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.