Um die "rohen Binärdaten" zu sehen, würde ich den Hex-Dump-Befehl hd
verwenden oder 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
Ich kenne kein Bildformat, das aus unstrukturierten Bytes besteht - sind die Daten 8-Bit-RGB-Werte? Wenn die Datei 30000 Bytes enthält, ist das RGB für 100 x 100 Pixel oder RGB für 50 x 200 Pixel oder RGB für 200 x 50 Pixel oder etwas anderes? Gibt es eine Palette? Sie müssen etwas über die Organisation der Daten wissen!
Um es als Bild anzuzeigen, würde ich die NetPBM-Dienstprogramme oder vielleicht ImageMagick verwenden, um es in eine Form zu konvertieren, die von einem Bildbetrachter verstanden wird
Wenn das obige die Arbeit nicht erledigen kann, würde ich versuchen, ein kleines Perl-Skript zu schreiben
Okay, gnuplot kann das.
http://gnuplot.sourceforge.net/demo_4.4/image.html
convert
von ImageMagick kann es tun.
Z. B. eine 8-Bit-2x3-Graustufe:
printf '\x00\xFF\x88\xFF\x00\xFF' > f
Dann:
convert -depth 8 -size 3x2+0 gray:f out.png
Befehlserklärung:
-depth 8
:jede Farbe hat 8 Bit-size 2x3+0
:2x3
Bild.+0
bedeutet ab Offset 0 in der Datei. Wenn Metadaten-Header vorhanden sind, können Sie diese mit dem Offset überspringen.gray:f
:Die Eingabedatei istf
, und das Format istgray
, wie unter http://www.imagemagick.org/script/formats.php definiert. Diese seltsame Notation wird verwendet, weil ImageMagick normalerweise das Format aus der Erweiterung bestimmt, aber hier gibt es keine Erweiterung.
Das Problem ist jetzt, wie man die Ausgabe anzeigt. Ein direkter eog
:
eog out.png
ist nicht sehr gut, weil das Bild zu klein ist, und wenn Sie viel hineinzoomen eog
verwendet einen Anzeigealgorithmus, der Pixel mischt, was für die meisten Bilder besser ist, aber nicht in unserem Fall. Ich habe zwei Möglichkeiten gefunden:
gimp out.png
. Bildbearbeiter müssen jeden einzelnen Pixel anzeigen.convert out.png -scale 300x200 out2.png
.-scale
wird anstelle von-resize
benötigt , seit-resize
mischt Pixel ähnlich wieeog
standardmäßig.
Ausgabe:
RGB-Beispiel:
printf '\xFF\x00\x00\x00\xFF\x00\x00\x00\xFF' > f
convert -depth 8 -size 3x1+0 rgb:f out.png
Getestet auf Ubuntu 16.04, ImageMagick 6.8.9.