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.