Chcete-li vidět "surová binární data", použil bych příkaz hex dump hd
nebo 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
Nevím o žádném formátu obrázku, který by sestával z nestrukturovaných bajtů - jsou data 8bitové hodnoty RGB? Pokud soubor obsahuje 30000 bajtů, je to RGB pro 100x100 pixelů nebo RGB pro 50x200 pixelů nebo RGB pro 200x50 pixelů nebo něco jiného? Je tam paletka? Musíte vědět něco o organizaci dat!
Chcete-li jej zobrazit jako obrázek, použil bych nástroje NetPBM nebo možná ImageMagick k převedení do podoby, kterou chápe prohlížeč obrázků
Pokud výše uvedené nemůže dělat svou práci, prozkoumal bych psaní malého skriptu v Perlu
Dobře, gnuplot to dokáže.
http://gnuplot.sourceforge.net/demo_4.4/image.html
convert
z ImageMagick dokáže to.
Např. 8bitová škála šedi 2x3:
printf '\x00\xFF\x88\xFF\x00\xFF' > f
Potom:
convert -depth 8 -size 3x2+0 gray:f out.png
Vysvětlení příkazu:
-depth 8
:každá barva má 8 bitů-size 2x3+0
:2x3
obraz.+0
znamená začátek od offsetu 0 v souboru. Pokud existují záhlaví metadat, můžete je přeskočit s posunem.gray:f
:vstupní soubor jef
a formát jegray
, jak je definováno na http://www.imagemagick.org/script/formats.php Tento podivný zápis se používá, protože ImageMagick obvykle určuje formát z přípony, ale zde žádná přípona neexistuje.
Nyní je problém, jak zobrazit výstup. Přímé eog
:
eog out.png
není příliš dobrý, protože obrázek je příliš malý, a pokud hodně přiblížíte eog
používá zobrazovací algoritmus, který míchá pixely, což je lepší pro většinu obrázků, ale ne v našem případě. Našel jsem dvě možnosti:
gimp out.png
. Editoři obrázků musí zobrazovat každý jednotlivý pixel.convert out.png -scale 300x200 out2.png
.-scale
je potřeba místo-resize
, od-resize
míchá pixely podobně jakoeog
ve výchozím nastavení.
Výstup:
Příklad RGB:
printf '\xFF\x00\x00\x00\xFF\x00\x00\x00\xFF' > f
convert -depth 8 -size 3x1+0 rgb:f out.png
Testováno na Ubuntu 16.04, ImageMagick 6.8.9.