원시 바이너리 데이터를 표시 할 수있는 Linux 용 프로그램이 있습니까?
이진 파일의 각 바이트는 픽셀을 나타내므로 내가 말할 수있는 곳에 이와 같은 것이 있으면 매우 유용합니다.
program_name --input=dat001.bin --width=200 --height=100
픽셀이 표시됩니다.
gnuplot이 이것에 사용될 수 있는지 궁금합니다 ...?
원시 바이너리 데이터를 표시 할 수있는 Linux 용 프로그램이 있습니까?
이진 파일의 각 바이트는 픽셀을 나타내므로 내가 말할 수있는 곳에 이와 같은 것이 있으면 매우 유용합니다.
program_name --input=dat001.bin --width=200 --height=100
픽셀이 표시됩니다.
gnuplot이 이것에 사용될 수 있는지 궁금합니다 ...?
답변:
"원시 바이너리 데이터"를 보려면 16 진수 덤프 명령을 사용 hd하거나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. <시작> .aaaaa | 00000030 61 0a 61 61 61 61 61 61 61 61 0a 61 61 61 61 61 61 | a.aaaaaaa.aaaaaa | 00000040 61 61 0a | aa. | 00000043
구조화되지 않은 바이트로 구성된 이미지 형식을 모릅니다. 데이터가 8 비트 RGB 값입니까? 파일에 30000 바이트가 포함 된 경우 100x100 픽셀의 RGB 또는 50x200 픽셀의 RGB 또는 200x50 픽셀의 RGB 또는 다른 것입니까? 팔레트가 있습니까? 데이터 구성에 대해 알아야합니다!
이미지로 보려면 NetPBM 유틸리티 또는 ImageMagick 을 사용하여 이미지 뷰어가 이해하는 형식으로 변환합니다.
위의 작업을 수행 할 수없는 경우 작은 Perl 스크립트 작성을 조사했습니다.
yum search hdFedora 데스크탑에서 작업을 수행했지만 해당 기능이 없었습니다.
hexdump. SuSE에서는 util-linux패키지 안에 있습니다.
hexdump아치에 있습니다.
좋아, gnuplot이 할 수 있습니다.
convertImageMagick에서 할 수 있습니다.
예를 들어, 8 비트 2x3 그레이 스케일 :
printf '\x00\xFF\x88\xFF\x00\xFF' > f
그때:
convert -depth 8 -size 3x2+0 gray:f out.png
명령 설명 :
-depth 8: 각 색상에는 8 비트가 있습니다.-size 2x3+0: 2x3이미지. +0파일에서 오프셋 0에서 시작하는 것을 의미합니다. 메타 데이터 헤더가있는 경우 오프셋으로 생략 할 수 있습니다.gray:f: 입력 파일은 f이고 형식은 http://www.imagemagick.org/script/formats.php에gray 정의되어 있습니다 . ImageMagick은 일반적으로 확장자에서 형식을 결정하기 때문에이 이상한 표기법이 사용되지만 여기에는 확장자가 없습니다. .문제는 이제 출력을 보는 방법입니다. 직접 eog:
eog out.png
이미지가 너무 작아서 많이 확대하지 않으면 eog픽셀을 혼합하는 디스플레이 알고리즘을 사용하므로 대부분의 사진에는 더 좋지만 우리의 경우에는 그렇지 않습니다. 나는 두 가지 가능성을 발견했다.
gimp out.png. 이미지 편집기는 모든 단일 픽셀을 표시해야합니다.convert out.png -scale 300x200 out2.png. mixels 픽셀 은 기본적으로 훨씬 많이 위로하기 때문에 -scale대신 에을 (를) 사용해야 합니다.-resize-resizeeog산출:
RGB 예 :
printf '\xFF\x00\x00\x00\xFF\x00\x00\x00\xFF' > f
convert -depth 8 -size 3x1+0 rgb:f out.png
Ubuntu 16.04, ImageMagick 6.8.9에서 테스트되었습니다.
/tmp/tex1.dat있는 경우 Imagemagick을 사용하여 변환 된 이미지 display를 128x256 픽셀 이미지로 직접 볼 수 있습니다.display -depth 8 -size 128x256+0 RGBA:/tmp/tex1.dat
-endian옵션 을 시도했지만 그것이 작동하는 것 같습니다 -depth 16, 이미지가 매우 어둡습니다
직접 보지 않고 변환하려는 경우 변환 유틸리티가 다음을 수행 할 수 있습니다.
320 x 200 픽셀, 8 비트 회색, 헤더 0을 가정하고 stdin에서 읽으려면 PNG 형식으로 pic.png에 저장하십시오.
convert -depth 8 -size 320x200+0 gray:- pic.png
gray:-형식 gray과 -stdin의 의미를 의미합니다 . 따라서 현재 명령이 stdin을 기다리는 동안 정지됩니다. 나는 내 대답에 대해 더 설명했다 : superuser.com/a/978432/128124
hd데 사용할 수 있습니다 . 그런 다음 이미지를 보도록 요청합니다. 이미지 인 경우 이미지 형식은 최소한 bmp와 같으며 형식, 너비, 높이, 색 깊이를 식별하는 헤더가 있고 색상 팔레트가 있어야합니다. 붙여진.