Eingabe erkennen
Klaus
- programmiertechnik
0 Matze0 Der Martin
0 Klaus
Hí!
sorry, mir ist leider kein treffender Betreff eingefallen
Meine Frage:
die Website farb-tabelle.de erkennt bei den RGB <-> HEX Konverter die Eingabe - RGB, HEX oder ein Farbname.
Wie wird so etwas realisiert?
Da es eine HTML-Datei ist gehe ich mal davon aus, dass es entweder mit HTML oder JavaScript gemacht wurde.
Beispiel die Eingabe "asf205jh20%ff51werg" wird als RGB "rgb(205, 51, 51)" erkannt.
http://www.farb-tabelle.de/de/rgb2hex.htm?q=asf205jh20%25ff51werg
Ich fange gerade mit HTML, JavaScript und PHP an und habe keinen Anhaltspunkt, wie man so etwas umsetzen muss.
Danke!
Hallo,
Ich fange gerade mit HTML, JavaScript und PHP an und habe keinen Anhaltspunkt, wie man so etwas umsetzen muss.
Die Konvertierung der Farbwerte kannst du nicht direkt mit HTML umsetzen.
Dazu brauchst du eine dafür geeignete Programmiersprache.
Unter PHPFuncs.org findest du ein Beispielskript dafür. Anhand dessen kannst du auch erkennen wie die Werte berechnet/konvertiert werden.
Zum konvertieren von Hex- in Dezimal-Werte gibt es die PHP-Funktion hexdec()
Grüße, Matze
Hi
Ich fange gerade mit HTML, JavaScript und PHP an und habe keinen Anhaltspunkt, wie man so etwas umsetzen muss.
Die Konvertierung der Farbwerte kannst du nicht direkt mit HTML umsetzen.
Dazu brauchst du eine dafür geeignete Programmiersprache.Unter PHPFuncs.org findest du ein Beispielskript dafür. Anhand dessen kannst du auch erkennen wie die Werte berechnet/konvertiert werden.
Zum konvertieren von Hex- in Dezimal-Werte gibt es die PHP-Funktion hexdec()
um die PHP Funktionen Benutzen zu können, muss ich doch erst einmal aus den String asf205jh20%ff51werg die Werte 205, 20% und 51 herausbekommen, oder irre ich mich?
Die 20% müsste ich vorher auch noch in eine Dezimalzahl umwandeln.
Klaus
Hallo,
Unter PHPFuncs.org findest du ein Beispielskript dafür. Anhand dessen kannst du auch erkennen wie die Werte berechnet/konvertiert werden.
Du kannst mit diesem Skript nicht nur die Hex- in RGB-Werte konvertieren sondern anhand der Verfahrensweise auch den Rückweg schlussfolgern.
Zum konvertieren von Hex- in Dezimal-Werte gibt es die PHP-Funktion hexdec()
um die PHP Funktionen Benutzen zu können, muss ich doch erst einmal aus den String asf205jh20%ff51werg die Werte 205, 20% und 51 herausbekommen, oder irre ich mich?
Nein, es gibt auch die Funktion dechex(), damit bekommst du den Hexadezimalwert eines Dezimalwertes. Wie du deb dann in RGB kriegst beschreibt das oben verlinkte Skript.
Grüße, Matze
Hallo Klaus,
die Website farb-tabelle.de erkennt bei den RGB <-> HEX Konverter die Eingabe - RGB, HEX oder ein Farbname.
die Seite trägt die Überschrift "Dezimal/Hexadezimal-Umrechner", und das finde ich wesentlich passender, denn ob nun in dezimal oder in hex, beide Angaben sind RGB.
Da es eine HTML-Datei ist gehe ich mal davon aus, dass es entweder mit HTML oder JavaScript gemacht wurde.
nein, die Seite enthält zwar etwas Javascript, aber nur um den Cursor gleich ins Eingabefeld zu setzen (Bedienungskomfort). Die Umrechnung erfolgt aber durch ein serverseitiges Script, wobei weder aus dem Quellcode, noch der URL, noch den HTTP-Headern nicht ersichtlich ist, in welcher Sprache das gelöst ist. Könnte PHP sein, aber auch etwas ganz anderes.
Beispiel die Eingabe "asf205jh20%ff51werg" wird als RGB "rgb(205, 51, 51)" erkannt.
Dann ist das Script anscheinend recht aufwendig gemacht, kann aber Eingabewerte, die nicht in ihre RGB-Komponenten aufgesplittet sind, trotzdem nicht erkennen. Beispielsweise wird 16777215 (hex FFFFFF, weiß) nicht erkannt, ebensowenig die 0 (hex 000000, schwarz).
Ich fange gerade mit HTML, JavaScript und PHP an und habe keinen Anhaltspunkt, wie man so etwas umsetzen muss.
Für den Einstieg erscheint mir so eine komplexe String-Analyse auch recht anspruchsvoll. Das erfordert IMHO schon einige Kniffe, die man als Anfänger garantiert noch nicht drauf hat.
Schönen Sonntag noch,
Martin
hi
Dann ist das Script anscheinend recht aufwendig gemacht, kann aber Eingabewerte, die nicht in ihre RGB-Komponenten aufgesplittet sind, trotzdem nicht erkennen. Beispielsweise wird 16777215 (hex FFFFFF, weiß) nicht erkannt, ebensowenig die 0 (hex 000000, schwarz).
wäre eine Umrechnung von 16777215 in FFFFFF sinnvoll?
Kann man denn 16777215 als Farbwert in einer HTML-Seite angeben? In SelfHTML habe ich dazu nichts gefunden.
Wofür sollte sich das Script entscheiden, wenn z.B. 123456 eingegeben wurde? Als HEX-Wert oder als Dezimal-Wert ;-)
Wenn diese Seite Dezimal-Werte auch umrechnen soll, kannst den Seitenbetreiber ja eine eMail zu kommen lassen *g*
Ich versuche mal mein Glück weiter ein String zu erkennen :-)
Klaus
Hallo Klaus,
wäre eine Umrechnung von 16777215 in FFFFFF sinnvoll?
kommt drauf an. ;-)
Kann man denn 16777215 als Farbwert in einer HTML-Seite angeben?
Nein, im HTML- oder CSS-Kontext ist so eine Angabe nicht vorgesehen. In manchen Grafikprogrammen aber vielleicht schon; in der Windows-Programmierung auf jeden Fall, wenn man da Schrift, Linien oder andere grafische Elemente in einer bestimmten Farbe ausgeben möchte. Die API-Funktionen des Windows-GUI erwarten Farbwerte als 32bit-Integer.
Wofür sollte sich das Script entscheiden, wenn z.B. 123456 eingegeben wurde? Als HEX-Wert oder als Dezimal-Wert ;-)
Gute Frage. Nächste Frage?
Wenn diese Seite Dezimal-Werte auch umrechnen soll, kannst den Seitenbetreiber ja eine eMail zu kommen lassen *g*
Ist mir nicht wichtig genug, das macht auch jeder bessere Taschenrechner. Und an den Stellen, wo's drauf ankommt, kann man die Werte meistens je nach Geschmack in dezimal, in hex, oder gar in einzelnen Farbanteilen aufgesplittet angeben. Insofern frage ich mich auch nach dem Zweck der Umrechnungs-Seite - es sei denn, es ist einfach nur ein Übungsprojekt des Autors.
Ich versuche mal mein Glück weiter ein String zu erkennen :-)
Good luck,
Martin
Moin!
Kann man denn 16777215 als Farbwert in einer HTML-Seite angeben?
Nein, im HTML- oder CSS-Kontext ist so eine Angabe nicht vorgesehen. In manchen Grafikprogrammen aber vielleicht schon; in der Windows-Programmierung auf jeden Fall, wenn man da Schrift, Linien oder andere grafische Elemente in einer bestimmten Farbe ausgeben möchte. Die API-Funktionen des Windows-GUI erwarten Farbwerte als 32bit-Integer.
Allgemein kann man Zahlenwerte für Farben gern in dezimaler oder hexadezimaler Schreibweise notieren. Dem Compiler oder Parser ist das egal, die interne Darstellung ist dieselbe. 0xFF und 255 sind der gleiche Bytewert.
Es ist übrigens kein Vorzug der Windows-API, dass Farbwerte als Zahl (auch Dezimalzahl) übergeben werden können. Das funktioniert mit den gdlib-Funktionen in PHP genauso gut (wenn man ein Truecolor-Bild bearbeitet).
Wofür sollte sich das Script entscheiden, wenn z.B. 123456 eingegeben wurde? Als HEX-Wert oder als Dezimal-Wert ;-)
Gute Frage. Nächste Frage?
Um solchen Unterscheidungsproblemen aus dem Weg zu gehen, werden Hex-Zahlen durch ein Vorangestelltes "0x" gekennzeichnet. Jedenfalls in Programmiersprachen. Für diese Seite muß das nicht zutreffen.
- Sven Rautenberg