Apakah ada program untuk Linux yang dapat menampilkan data biner mentah?
Setiap byte dalam file biner saya mewakili piksel, jadi akan sangat berguna jika sesuatu seperti ini ada di tempat yang bisa saya katakan
program_name --input=dat001.bin --width=200 --height=100
dan itu akan menampilkan piksel.
Saya ingin tahu apakah gnuplot, dapat digunakan untuk ini ...?
hd
untuk memformat. Kemudian Anda meminta untuk melihat gambar. Jika itu adalah gambar, maka itu akan berada dalam format gambar (seperti bmp) yang paling tidak, memiliki header yang mengidentifikasi format, lebar, tinggi, kedalaman warna, dan mungkin juga memiliki palet warna terlampir.Jawaban:
Untuk melihat "data biner mentah", saya akan menggunakan perintah hex dump
hd
atauhexdump
Saya tidak tahu format gambar apa pun yang terdiri dari byte yang tidak terstruktur - apakah nilai data 8-bit RGB? Jika file berisi 30000 byte apakah itu RGB untuk 100x100 piksel atau RGB untuk 50x200 piksel atau RGB untuk 200x50 piksel atau yang lainnya? Apakah ada palet? Anda harus tahu sesuatu tentang pengorganisasian data!
Untuk melihatnya sebagai gambar, saya akan menggunakan utilitas NetPBM atau mungkin ImageMagick untuk mengubahnya menjadi bentuk yang dimengerti oleh penampil gambar.
Jika di atas tidak bisa melakukan pekerjaan saya akan menyelidiki menulis skrip Perl kecil
sumber
yum search hd
di desktop Fedora saya, dan tidak memilikinya.hexdump
. Pada SuSE itu ada dalamutil-linux
paket.hexdump
di Arch.Oke, gnuplot bisa melakukannya.
http://gnuplot.sourceforge.net/demo_4.4/image.html
sumber
convert
dari ImageMagick bisa melakukannya.Misalnya, skala abu-abu 2x3 8-bit:
Kemudian:
Penjelasan perintah:
-depth 8
: setiap warna memiliki 8 bit-size 2x3+0
:2x3
gambar.+0
berarti mulai dari offset 0 dalam file. Jika ada header metadata, Anda dapat melewati mereka dengan offset.gray:f
: file inputf
, dan formatnyagray
, seperti yang didefinisikan di http://www.imagemagick.org/script/formats.php Notasi aneh ini digunakan karena ImageMagick biasanya menentukan format dari ekstensi, tetapi di sini tidak ada ekstensi .Masalahnya sekarang adalah bagaimana cara melihat output. A direct
eog
:tidak terlalu baik karena gambarnya terlalu kecil, dan jika Anda memperbesar banyak
eog
menggunakan algoritma tampilan yang mencampur piksel, yang lebih baik untuk sebagian besar gambar, tetapi tidak dalam kasus kami. Saya menemukan dua kemungkinan:gimp out.png
. Editor gambar harus menunjukkan setiap piksel.convert out.png -scale 300x200 out2.png
.-scale
diperlukan alih-alih-resize
, karena-resize
mencampur piksel jauh sepertieog
secara default.Keluaran:
Contoh RGB:
Diuji pada Ubuntu 16.04, ImageMagick 6.8.9.
sumber
/tmp/tex1.dat
), Anda dapat melihat gambar yang dikonversi secara langsung dengan Imagemagick'sdisplay
sebagai 128x256 piksel gambar dengandisplay -depth 8 -size 128x256+0 RGBA:/tmp/tex1.dat
-endian
opsi tetapi tampaknya berfungsi-depth 16
, gambarnya sangat gelapJika tidak ingin melihatnya secara langsung, tetapi lebih baik konversikan utilitas konversi dapat melakukan ini:
Untuk membaca dari stdin, dengan asumsi 320 x 200 piksel, abu-abu 8 bit, tajuk 0, simpan ke pic.png dalam format PNG.
sumber
gray:-
berarti formatgray
dan-
sarana dari stdin. Dengan demikian perintah saat ini hang menunggu stdin. Saya sudah menjelaskan lebih lanjut tentang jawaban saya: superuser.com/a/978432/128124