Ich möchte eine Seite für Benutzer erstellen, um unser System mit einfachen Logo-und Farbänderungen neu zu gestalten.Extrahieren von Farben von Benutzer hochgeladen SVG-Datei und Ausgabe für die Verwendung in einem Formular
Benutzer können ihr Logo hochladen und wenn sie ein SVG wählen, würde die Seite im Idealfall die Farben in ihrem Logo als praktische Referenz auflisten, damit sie diese in die anderen Felder auf der Seite kopieren können, um sie zu speichern um Hex-Codes usw. auszugraben
Ist es möglich, mit jQuery/JS/Regex die Füllfarben aus einer ausgewählten/hochgeladenen SVG-Datei zu finden und auszugeben?
Ich bin nicht an Komplikationen wie Opazität und Effekte interessiert, nur eine einfache Extraktion von Farbcodes als eine progressive Verbesserung. Der Benutzer wird auch in der Lage sein, seine eigenen Farben als Rückfall zusätzlich zu dem, was in der SVG gefunden wird, zu wählen.
Ich weiß nicht, wie um zu beginnen, aber ich denke, einige der Fragen, die ich ansprechen müssen schließen
- doppelte Werte vor der Ausgabe Entfernen
- SVG Sicherheit/script Injektion
- Hat der SVG muss vor der Verwendung auf den Server hochgeladen werden oder kann es vor der Übermittlung verwendet werden?
die SVG Leinwand umwandeln und die Farben von der Leinwand –
@ RobertLongson Vorschlag lesen ist in der Tat die einzige zuverlässige Art und Weise berechnet Farben zu bekommen, wenn man über Opazität Mix denkt, Steigungen und gefilterten Farben, aber das würde Sie berechnete Farben, nicht sicher, das ist was Sie brauchen. Dies funktioniert auch nicht im IE vor Edge, da es die Zeichenfläche verschmutzt, wenn ein Svg-Bild darauf gezeichnet wird. Sie müssen ein bisschen klarstellen, was Sie wirklich wollen und zu welchem Zweck. – Kaiido
Ich hatte gehofft, dass es vielleicht eine Möglichkeit gibt, jQuery mit Regex zu kombinieren, um die Fill-Eigenschaften aus dem SVG-Code herauszuholen. Es muss nicht 100% erfolgreich sein, jede Farbe in einem Logo zu packen, aber was immer es als handliches Extra mit dem Fallback sein kann, dass der Benutzer stattdessen ihre eigenen Farben eingeben muss. –