2017-05-13 7 views
1

タイトルが述べるように、画像を読み取るスクリプトを作成しようとしています。画像を16進コードのリストに変換します。ようにImagemagickを使用して、RGB画像を各ピクセルごとに16進数のリストに変換しようとしています

FFFFFF 
000000 
FFFFFF 
000000 
FFFFFF 
000000 

そして、たとえば、白と黒の画素を交互に8×8 PNG画像は、この中に変換されます。私は今まで以下を試してみました:

convert $name.png -compress none pnm:- 

しかし、上記のコードは16進値ではなく通常の数値を返しました。ここに例があります:

205 0 0 205 0 0 205 0 0 205 0 0 205 0 0 205 0 0 224 160 0 224 160 0 224 160 0 

ここで何がうまくいかず、16進コードを出力するためにどのような変更が加えられましたか?

+0

わからない自分のプロフィールページは非常に適切です。 –

答えて

1

これは私の作品:

convert yourimage.png txt:- | tail -n +2 | sed -n 's/^.*#\([0-9A-Fa-f]*\).*$/\1/p' 

あなたは、生のRGB値にファイルをデコードするImageMagickのを使用することができますし、をグループ化し、六角の表示に xxdのhttp://www.imagemagick.org/Usage/files/#txt

1

を参照してください。

convert yourImage.png rgb:- | xxd -g3 

私は-g3を使用して3つのfアルファ/透明層がある場合、またはRGBファイルは、と:あなたはxxdで使いたいかもしれません

convert yourImage.png rgba:- | xxd -g4 

他のスイッチは次のようになります。

xxd -g3 -c15 # 15 bytes per line, good if you have 5 pixels of 3 bytes each, so hex lines match image scanlines 

xxd -ps   # continuous output without offsets at start of lines 
関連する問題