Para ver los "datos binarios sin procesar", usaría el comando de volcado hexadecimal hd
o hexdump
$ hd -C a.txt 00000000 61 0a 61 61 0a 61 61 61 0a 61 61 61 61 0a 61 61 |a.aa.aaa.aaaa.aa| 00000010 61 61 61 0a 62 62 62 0a 62 62 62 62 0a 62 62 62 |aaa.bbb.bbbb.bbb| 00000020 62 62 0a 3c 62 65 67 69 6e 3e 0a 61 61 61 61 61 |bb.<begin>.aaaaa| 00000030 61 0a 61 61 61 61 61 61 61 0a 61 61 61 61 61 61 |a.aaaaaaa.aaaaaa| 00000040 61 61 0a |aa.| 00000043
No conozco ningún formato de imagen que consista en bytes no estructurados:¿los datos son valores RGB de 8 bits? Si el archivo contiene 30000 bytes, ¿es RGB para 100x100 píxeles o RGB para 50x200 píxeles o RGB para 200x50 píxeles o algo más? ¿Hay una paleta? ¡Tienes que saber algo sobre la organización de los datos!
Para verlo como una imagen, usaría las utilidades de NetPBM o tal vez ImageMagick para convertirlo a un formato comprensible para un visor de imágenes
Si lo anterior no puede hacer el trabajo, investigaría escribiendo un pequeño script Perl
Está bien, gnuplot puede hacerlo.
http://gnuplot.sourceforge.net/demo_4.4/image.html
convert
de ImageMagick puede hacerlo.
Por ejemplo, una escala de grises 2x3 de 8 bits:
printf '\x00\xFF\x88\xFF\x00\xFF' > f
Entonces:
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 esf
, y el formato esgray
, tal como se define en http://www.imagemagick.org/script/formats.php Esta extraña notación se usa porque ImageMagick generalmente determina el formato a partir de la extensión, pero aquí no hay extensión.
El problema ahora es cómo ver la salida. Un eog
directo :
eog out.png
no es muy bueno porque la imagen es muy pequeña, y si haces mucho zoom eog
utiliza un algoritmo de visualización que mezcla píxeles, lo 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 uno de los píxeles.convert out.png -scale 300x200 out2.png
.-scale
se necesita en lugar de-resize
, desde-resize
mixeles píxeles hacia arriba comoeog
por defecto.
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.