ImageMagick: Farbcode eines Bildpunktes auslesen
Mittwoch, der 26. August 2009, 21:23 Uhr von
Stefan
Für verschiedene Aufgaben kann es notwendig sein die Farbwerte einzelner Pixel eines Bildes auszulesen.
Dazu muss die Bilddatei nur in eine Textdatei umgewandelt werden.
Falls man die Werte des ganzen Bildes in eine Textdatei schreiben will braucht man nur den Befehl
convert image.jpg image.txt
Das Ergebnis sieht dann in etwa so aus: (wobei das bei verschiedenen ImageMagick Versionen variieren kann)
# ImageMagick pixel enumeration: 30,31,255,rgb
0,0: ( 70, 70, 70) #464646 rgb(70,70,70)
1,0: ( 70, 70, 70) #464646 rgb(70,70,70)
2,0: ( 70, 70, 70) #464646 rgb(70,70,70)
3,0: ( 70, 70, 70) #464646 rgb(70,70,70)
4,0: ( 70, 70, 70) #464646 rgb(70,70,70)
5,0: ( 70, 70, 70) #464646 rgb(70,70,70)
6,0: ( 70, 70, 70) #464646 rgb(70,70,70)
7,0: ( 70, 70, 70) #464646 rgb(70,70,70)
8,0: ( 70, 70, 70) #464646 rgb(70,70,70)
9,0: ( 70, 70, 70) #464646 rgb(70,70,70)
10,0: ( 86, 86, 86) #565656 rgb(86,86,86)
11,0: (104,104,104) #686868 rgb(104,104,104)
12,0: (117,117,117) #757575 grey46
...
Wenn man nur ein bestimmtes Pixel auslesen will reicht es aus das Bild gleichzeitig zu beschneiden
convert image.jpg -crop 1x1+50+50 +repage image.txt
Ergebnis:
# ImageMagick pixel enumeration: 1,1,255,rgb
0,0: (130,130,130) #828282 grey51
Diese Textdatei die hier erstellt wird kann ganz einfach eingelesen und zeilenweise abgearbeitet werden.
Alternative:
Das auslesen eines Bildpunktes kann auch mit PHP sehr einfach durchgeführt werden.
Dazu muss man die Funktion imagecolorat am besten in Verbindung mit der Funktion imagecolorforindex verwenden.
Eine geneue Beschreibung der Funktion inkl. Beispiel findet man auf der PHP Hilfeseite:

Geschrieben in: Programmierung | Schlagwörter:ImageMagick, Linux
0 Trackbacks | Keine Kommentare »