Erstellen Sie eine hexadezimale Farbe basierend auf einer Zeichenfolge mit JavaScript
Möchte ich eine Funktion erstellen, die akzeptieren keine alten string (wird in der Regel ein einziges Wort) und von diesem irgendwie generiert einen hexadezimalen Wert zwischen #000000
und #FFFFFF
, so kann ich es verwenden, wie eine Farbe, die für ein HTML-element.
Vielleicht sogar ein Kürzel hex-Wert (e.g: #FFF
), wenn das ist weniger kompliziert. In der Tat, eine Farbe aus einem "web-safe" palette wäre ideal.
Kommentar zu dem Problem
Könnte geben einige Beispiel-input und/oder links zu ähnlichen Fragen?
Keine Antwort, aber vielleicht finden Sie die folgenden nützlichen: Umwandlung einer hexadezimal-in eine Ganzzahl, verwenden Sie
parseInt(hexstr, 10)
. Konvertieren einer Ganzzahl in einen hexadezimalen, verwenden Sie n.toString(16)
, wobei n eine Ganzzahl ist. @qw3n - Beispiel für die Eingabe: nur kurz, plain old text-strings... wie 'Medizin', 'Operation', 'Neurologie', 'Allgemeinmedizin', usw. Zwischen 3 und sagen, 20 Zeichen... nicht finden können, die anderen aber hier ist das java-Frage: stackoverflow.com/questions/2464745/... @Daniel - vielen Dank. Ich muss mich hinsetzen und ein anderes ernst, gehen auf diese. nützlich sein könnte.
InformationsquelleAutor der Frage Darragh Enright | 2010-08-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur die Portierung über das Java von Compute-hex-color-code für eine beliebige Zeichenfolge Javascript:
Konvertieren Sie tun würde:
InformationsquelleAutor der Antwort Cristian Sanchez
Hier ist eine Anpassung der CD-Sanchez' Antwort, die konsequent liefert einen 6-stelligen Farbcode:
Verwendung:
Beispiel:
http://jsfiddle.net/sUK45/
(Alternative/einfachere Lösung könnte mit der Rückkehr einer " rgb(...)'-Stil-Farb-code.)
InformationsquelleAutor der Antwort Joe Freeman
Wollte ich ähnlichen Reichtum an Farben für HTML-Elemente, war ich überrascht zu finden, dass CSS jetzt unterstützt hsl() Farben, also eine vollständige Lösung für mich ist unten:
Siehe auch Wie automatisch generieren " N "unterschiedliche" Farben? weitere alternativen, die mehr ähnlich wie diese.
Im HSL den Farbton, Sättigung, Helligkeit. Also der Farbton zwischen 0-359 bekommen alle Farben, die Sättigung ist, wie Reich Sie wollen, die Farbe, die 100% für mich funktioniert. Und Leichtigkeit bestimmt die Tiefe, 50% normale, 25% dunkle Farben, 75% ist Pastell. Ich habe 30%, weil es halt mit mein Farbschema am besten.
InformationsquelleAutor der Antwort Thymine
Ich finde, dass die Erzeugung von Zufallszahlen Farben neigt, um Farben, die nicht genügend Kontrast für meinen Geschmack. Der einfachste Weg, die ich gefunden habe, das zu umgehen, ist die pre-bevölkern eine Liste von sehr verschiedenen Farben. Für jeden neue string, weisen Sie die nächste Farbe in der Liste:
Während dies hat eine Beschränkung auf nur 64 Farben, ich finde die meisten Menschen können nicht wirklich sagen, der Unterschied, nachdem das sowieso nicht. Ich nehme an, man könnte immer noch mehr Farben.
Während dieser code wird hart codierte Farben, Sie sind zumindest garantiert, um zu wissen, bei der Entwicklung ganz genau, wie viel Kontrast zwischen den Farben in der Produktion.
Farbe Liste wurde gehoben von diese SO beantworten, gibt es andere Listen mit mehr Farben.
InformationsquelleAutor der Antwort Rick Smith
Wenn Sie Ihre Eingaben sind nicht Verschieden genug, für eine einfache hash zu verwenden, das gesamte Farbspektrum, können Sie mit einem körnigen random number generator anstelle einer hash-Funktion.
Ich bin mit der Farbe, die coder von Joe Freeman ' s Antwort, und David Bau entkernt random number generator.
InformationsquelleAutor der Antwort Nathan
Ich baute eine Funktion, passt die Rechnung in Please.js,
es ist noch nicht zusammengeführt mit der Haupt-repo, aber Sie können es hier sehen:
https://github.com/ibarrajo/PleaseJS
Ordnen Sie die Zeichenfolge für eine Farbe etwa so:
"any string goes here"
zurückkehren"#47291b"
und
"another!"
kehrt als"#1f0c3d"
InformationsquelleAutor der Antwort Josue Alexander Ibarra
Noch eine andere Lösung für den zufälligen Farben:
Es ist ein gemischter Dinge, die nicht den job für mich.
Ich verwendet JFreeman Hash-Funktion (auch eine Antwort in diesem thread) und Asykäri pseudo-random-Funktion von hier und einige Polsterung und Mathe von mir.
Bezweifle ich die Funktion erzeugt gleichmäßig verteilte Farben, aber es sieht nett aus und tut, was es tun sollte.
InformationsquelleAutor der Antwort estani
Hier ist die Lösung kam ich mit zu erzeugen ästhetisch ansprechende Pastellfarben basierend auf einer Eingabe-Zeichenfolge. Es verwendet die ersten zwei Zeichen des Strings als eine Zufallsverteilung, dann generiert der R/G/B, basierend auf den Samen.
Es könnte leicht erweitert werden, so dass der same ist das XOR aller Zeichen in der Zeichenfolge, anstatt nur die ersten beiden.
Inspiriert von David Crow ' s Antwort hier: Algorithmus, um nach dem Zufallsprinzip generieren eine ästhetisch-ansprechende Farbpalette
KERNAUSSAGE ist hier: https://gist.github.com/ro-sharp/49fd46a071a267d9e5dd
InformationsquelleAutor der Antwort Robert Sharp
Hier ist ein Versuch:
InformationsquelleAutor der Antwort kikito
Diese Funktion funktioniert der trick. Es ist eine Adaption von diesem, relativ längere diese repo ..
InformationsquelleAutor der Antwort Theódór Ágúst Magnússon