In Adobe Afereffects gibt es eine Routine die automatisch passende Farbnamen generiert, wenn man eine Farbfläche erstellt.
Das klappt nicht nur für Vollton Farben, sondern es kommt auch sowas wie: "Mittel-Limonengrüne Farbfläche1"
Sowas hätte ich gern in Python, für Web-Farben. (Genauer gesagt, für PyLucid, mehr Infos dazu im Forums Thread: v0.9 - CSS ColorScheme {{ color1 }} ?)
Kennt jemand was fertiges? Jemand Lust sowas zu machen?
Automatischer Farbnamen für Web Farben (#00000 -> black)
Kannst du vergessen, der Html standard definiert nur 16 Farbnamen, die von allen Browsern implementiert werden müssen, der Rest ist nach Lust und Laune (und Websafe sind ja 256 iirc, also fehlen dir noch 256-16 Namen^^)…
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Naja, aber wenn man die Farben in Hex-Schreibweise angibt, wie das so ziemlich jeder macht, sind die Websafe-Farben meiner Erfahrung nach von keinerlei Bedeutung.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich halte die Farbnamen ja für total überflüssig. Unter LavenderBlush kann ich mir noch weniger vorstellen als unter #FFF0F5, wo ich zumindest sehe, dass es etwas hellrosaness sein muss. Schaut man sich "gefällige" Farbschemata z.B. auf kuler.adobe.com an, sieht man zudem ganz schnell, dass die Farbabstufungen viel feiner sind und die doch recht kräftigen Grundfarben mit Name zusammen nie (oder selten) ein stimmiges Farbschema ergeben. Daher denke ich nicht, dass man sie je brauchen wird.
Doch wenn man unbedingt will, so schwer ist es ja wohl nicht, die Tabelle von w3school in eine Python-Klasse zu verwandeln. Ich tippe, man ist damit in 4 Minuten durch:
Damit's nicht zu lang wird, habe ich nicht alle Faben aus der HTML-Tabelle kopiert, aber mehr als ein Copy&Paste ist das nicht.
Stefan
Doch wenn man unbedingt will, so schwer ist es ja wohl nicht, die Tabelle von w3school in eine Python-Klasse zu verwandeln. Ich tippe, man ist damit in 4 Minuten durch:
Code: Alles auswählen
class Colors(dict):
def __getattr__(self, name):
return self[name]
colors = """
AliceBlue #F0F8FF
AntiqueWhite #FAEBD7
Aqua #00FFFF
Aquamarine #7FFFD4
Azure #F0FFFF
Beige #F5F5DC
Bisque #FFE4C4
Black #000000
BlanchedAlmond #FFEBCD
Blue #0000FF
BlueViolet #8A2BE2
""".split()
Colors = Colors(zip(colors[::2], colors[1::2]))
print Colors['Aqua']
print Colors.Bisque
Stefan
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Sorry, ihr habt mich da anscheinend falsch verstanden. Es geht mit nicht darum hex Farbwerte in "offizielle Web-Farbnamen" zu konvertieren. Es sollen aus gegebenen hex Farbwerte, halbwegs sinnvolle Namen erzeugt werden (Die nichts mit offiziellen Namen zu tun haben müßen).
Sowas wie "Hell orange", "dunkel grau" usw...
Sowas wie "Hell orange", "dunkel grau" usw...
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
sma hat das Grundproblem doch aber erfasst: Wenn man den Farbwerten willkürliche Namen zuweist, kann der normale Benutzer damit noch weniger anfangen als mit der Hex-Kodierung, bei der man wenigstens die Anteile abschätzen kann.
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Code: Alles auswählen
colors = [
('Red', 1.0, 0.0, 0.0),
('Green', 0.0, 1.0, 0.0),
('Blue', 0.0, 0.0, 1.0),
('Yellow', 1.0, 1.0, 0.0),
]
def find_name(color):
r1, g1, b1 = color
return min(
(((r1-r2)**2+(g1-g2)**2+(b1-b2)**2)**0.5, name)
for name, r2, g2, b2 in colors)[1]
print find_name((0.8, 0.8, 0.0)) # Yellow
print find_name((0.8, 0.0, 0.0) # Red

Gruss,
Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Nein. Ich möchte natürlich keine "willkürlichen" Namen, sondern passende Namen. Also genau das was du meinst, der Name soll die Farbe gut beschreibencofi hat geschrieben:Wenn man den Farbwerten willkürliche Namen zuweist, kann der normale Benutzer damit noch weniger anfangen als mit der Hex-Kodierung, bei der man wenigstens die Anteile abschätzen kann.

Ich denke man müßte es so machen: Erstmal die Hellingkeit nehmen, wenn sehr dunke oder sehr hell. Dann die Farbe ansich, also rot, lila, gelb, grün usw.
So das man Namen erhält, wie "Hell gelb" oder "dunkel türkis", aber dann auch noch "Sonderfälle", wenn es fast rot ist, dann nur "rot" usw.
EDIT: Ich brauche so ein Tool nicht mehr. Besser ist es in meinem Fall die Namen auf Basis der CSS Selektoren zu generieren und nicht nach der Farbe...
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Hab nun was gefunden, das JavaScript "Name that Color". Man kann eine Farbe vorgeben und erhält dazu einen Farbnamen (in Englisch).
Homepage: http://chir.ag/projects/ntc/
Demo: http://chir.ag/projects/name-that-color/
Homepage: http://chir.ag/projects/ntc/
Demo: http://chir.ag/projects/name-that-color/
- Defnull
- User
- Beiträge: 778
- Registriert: Donnerstag 18. Juni 2009, 22:09
- Wohnort: Göttingen
- Kontaktdaten:
Du könntest die echten Namen nehmen und die jeweils die Farbe heraus suchen, die deiner am ähnlichsten ist. So macht es 'Name that Color' ja auch.
Für Farbnamen hab ich hier noch was: http://github.com/defnull/Lucullus/blob ... r/color.py (spart vielleicht etwas Tipp Arbeit)
Für Farbnamen hab ich hier noch was: http://github.com/defnull/Lucullus/blob ... r/color.py (spart vielleicht etwas Tipp Arbeit)
Bottle: Micro Web Framework + Development Blog