Seite 1 von 1

Farbwert aus einem Bild bestimmen

Verfasst: Dienstag 17. April 2007, 14:39
von kiiu
ich möchte an einer bestimmten Position im Bild den Farbwert auslesen..
habe etwas rumgesucht, jedoch fündig bin ich bisher nicht geworden -_-

soeben probierte ich nen paar Funktionen der PIL -
die Funktion "getcolors()" klang ganz vielversprechend:

Code: Alles auswählen

>>> im.getcolors()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: GifImageFile instance has no attribute 'getcolors'
Leider wie man sieht, gibt es einen Fehler.
Es handelt sich bei den fragl. Dateien definitiv (auch später) um GIF Dateien..

Letztendl. bekomm ich von der Funktion nach Beschreibung aber eh
eine Auflistung aller Farben und deren Anzahl - aus dieser kann ich
schlecht ermitteln welche Farbe sich wo befindet..

Wie erwähnt, möchte ich gerne die Farbe von Pixel an Position (x, y) haben..

Hat jemand einen Tipp?

[edit]
grad die Funktion "getpixel()" entdeckt:

Code: Alles auswählen

>>> im.getpixel((0, 0))
57
maybe kann mir jemand sagen, was ich damit anfang? ^^

Verfasst: Dienstag 17. April 2007, 14:53
von BlackJack
Die Methode `getcolors()` sollte es aber geben. Eigenartig.

Das was Du suchst ist `getpixel()`. Bei GIF-Bildern liefert das allerdings keine Farbe als RGB-Wert, sondern den Index in die Palette.

Wenn Du den RGB-Wert brauchst, dann kannst Du das Bild umwandeln:

Code: Alles auswählen

In [116]: a = Image.open('/home/new/work/spoj/1415_pcv2/turbo_032948.gif')

In [117]: a.getpixel((10, 10))
Out[117]: 6

In [118]: b = a.convert('RGB')

In [119]: b.getpixel((10, 10))
Out[119]: (0, 0, 0)

Verfasst: Dienstag 17. April 2007, 14:59
von kiiu
perfekt :>
danke dir ;)