convert
de ImageMagick
Por ejemplo, una escala de grises 2x3 de 8 bits:
printf '\x00\xFF\x88\xFF\x00\xFF' > f
Luego:
convert -depth 8 -size 3x2+0 gray:f out.png
Explicación del comando:
-depth 8
: cada color tiene 8 bits
-size 2x3+0
: 2x3
imagen. +0
significa comenzar en el desplazamiento 0 en el archivo. Si hay encabezados de metadatos, puede omitirlos con el desplazamiento.
gray:f
: el archivo de entrada es f
, y el formato es gray
, como se define en http://www.imagemagick.org/script/formats.php Esta notación extraña se usa porque ImageMagick generalmente determina el formato de la extensión, pero aquí no hay extensión .
El problema ahora es cómo ver la salida. Un directo eog
:
eog out.png
no es muy bueno porque la imagen es demasiado pequeña, y si se eog
acerca mucho, utiliza un algoritmo de visualización que mezcla píxeles, que es mejor para la mayoría de las imágenes, pero no en nuestro caso. Encontré dos posibilidades:
gimp out.png
. Los editores de imágenes deben mostrar cada píxel.
convert out.png -scale 300x200 out2.png
. -scale
es necesario en lugar de hacerlo -resize
, ya que los -resize
píxeles mixels se elevan de forma muy similar eog
a la predeterminada
Salida:
Ejemplo RGB:
printf '\xFF\x00\x00\x00\xFF\x00\x00\x00\xFF' > f
convert -depth 8 -size 3x1+0 rgb:f out.png
Probado en Ubuntu 16.04, ImageMagick 6.8.9.