2017-05-13 3 views
1

Wie der Titel sagt, ich versuche, ein Skript, das ein Bild liest, spielt keine Rolle, die Auflösung und konvertiert das Bild in eine Liste von Hex-Codes. Zum Beispiel würde ein 8x8 PNG-Bild mit abwechselnd weißen und schwarzen Pixeln in diesen umgewandelt:Probieren Sie Imagemagick, um ein RGB-Bild in eine Liste von Hex-Codes für jedes Pixel zu konvertieren

FFFFFF 
000000 
FFFFFF 
000000 
FFFFFF 
000000 

Und so weiter. Ich habe versucht, nach der bisher:

convert $name.png -compress none pnm:- 

jedoch der obige Code gerade reguläre Zahlen anstelle von Hex-Werten. Hier ein Beispiel:

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 

Was schief gelaufen ist hier, und welche Änderungen würde ich machen, um sie Ausgang Hex-Codes zu machen?

+0

Nicht sicher, dass Ihre Profilseite sehr geeignet ist. –

Antwort

1

Sie ImageMagick xxd die Datei auf rohen RGB-Werte zu dekodieren und zu gruppieren und Anzeige in hex verwenden:

convert yourImage.png rgb:- | xxd -g3 

Ich verwende -g3, um in drei f zu gruppieren oder RGB-Dateien, und wenn es eine Alpha/Transparenz Schicht ist:

convert yourImage.png rgba:- | xxd -g4 

Andere Schalter Sie könnten mit xxd verwenden möchten sein:

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 
Verwandte Themen