Seite 1 von 1
mögliche Formate der Farbangaben
Verfasst: Dienstag 20. April 2010, 21:11
von muhazz
Hallo liebe Python-Gemeinde,
eine ganz knappe Frage:
Ich möchte in PhotoImage.put eine Farbangabe machen, aber weder in der üblichen Darstellung "#FF0033" noch mit vordefinierten Schlüsselwörtern.
Am günstigsten für mich wäre eine Farbangabe durch eine ganze Zahl in einem bestimmten Bereich (z.B. von 0 bis 255).
Ist das möglich?
Viele Grüße,
muhazz
Verfasst: Dienstag 20. April 2010, 21:56
von BlackJack
Du kannst die ganze Zahl doch vorher durch eine "Tabelle schicken" (Liste oder Dictionary) die diese Zahl auf eine Farbe abbildet wie sie von `Tkinter` erwartet wird.
Verfasst: Freitag 23. April 2010, 07:30
von muhazz
Hmm, das würde leider einiges an stumpfsinniger Tipparbeit bedeuten.
Einen passenden Algorithmus zur automatischen Erzeugung konnte ich leider nicht finden.
Naja, es scheint, als müsste ich da durch.
VIele Grüße,
muhazz
Verfasst: Freitag 23. April 2010, 12:35
von numerix
Ich sehe das Problem noch nicht.
Geklärt werden müsste doch nur, was eine Farbangabe als ganzzahliger Wert zwischen 0 und 255 bedeuten soll. Je nach dem musst du dir - wie schon vorgeschlagen - das fest kodieren und jeder Zahl eine bestimmte Farbe zuordnen, oder aber, einzelne Bits in der Zahl haben z.B. eine bestimmte Bedeutung und es lässt sich mittels einer (selbst zu schreibenden Funktion) entsprechend auf eine RGB-Angabe transformieren.
Verfasst: Freitag 23. April 2010, 13:02
von Trichter
Die übliche Darstellung ('#FF0033') ist doch auch nur eine Zahl im Hexadezimalsystem.
Du kannst dir einfach eine andere Darstellung basteln in der du auf das für uns übliche Zehnersystem zurückgreifst, indem du für Rot, Grün bzw. Blau Werte zwischen 0 und 999 zulässt. Die Zahl, die eine Farbe repräsentiert kannst du dann mit 1.000.000 * R + 1.000 * G + B errechnen.
Grau wäre dann '500500500', grün '999000' und dunkelrot '200000000'.
Um aus diesen Zahlen wieder die einzelnen Farbwerte zu extrahieren musst du nur den Modulo-Operator darauf anwenden.
Verfasst: Samstag 24. April 2010, 12:18
von muhazz
numerix hat geschrieben:Ich sehe das Problem noch nicht. [...] Je nach dem musst du dir - wie schon vorgeschlagen - das fest kodieren und jeder Zahl eine bestimmte Farbe zuordnen
Die einzige Möglichkeit, die ich für mich gesehen habe, jedem Wert zwischen 0 und 255 eine Zahl zuzuordnen, ist das Anlegen eines Dictionaries, und zwar per Hand. Einen sinnvollen Algorithmus zur generierung der Farben konnte ich nicht finden.
Das war mir erstmal zu viel Tipparbeit, aber das ganze problem hat sich gelöst, da ich nicht so viel Farben benötige, wie ich anfangs gedacht hatte.
60 Einträge kann ich noch selbst tippen.
Auch wenn es sich sehr unelegant und stumpfsinnig anfühlt, war das glaube ich einfach die schnellste und praktischste Lösung für meine Situation.
Viele Grüße,
muhazz
Verfasst: Samstag 24. April 2010, 12:43
von BlackJack
@muhazz: Ich glaube ich hatte es hier an anderer Stelle schon einmal vorgeschlagen: Schau Dir an wie andere freie Software, zum Beispiel Gimp, mit Farbverläufen und -paletten umgeht. Man kann Farbverläufe anhand weniger Stützpunkte interpolieren oder auch schauen was es an fertigen Paletten im Netz als Daten gibt und die verwenden.