Мы работаем над Abode Illustrator для создания файлов SVG, мы пытаемся создать сценарии javaScripts для отображения всех цветовых кодов, закодированных в файле SVG.
А также пытаемся получить счетчик каждого цвета, закодированного вкаждый объект в SVG.
Требуемый результат
Результат с использованием JavaScript
Мы попытались использовать решение, представленное ниже.ссылка предоставлена @Emeeus.Ссылка: Сценарий Illustrator для поиска всех цветов в документе
Мы открыли файл SVG на пустой веб-странице и запустили следующий код в консоли:
var doc = document.getElementsByTagName("*");
var colors = [];
for (let j = 0; j < doc.length; j++) {
var styles = window.getComputedStyle(doc[j], null)
for (let i = 0; i < styles.length; i++) {
if (typeof styles[styles[i]] !== "undefined" && styles[styles[i]].match(/rgb\([0-9, ]*\)/g)) {
let color = styles[styles[i]].replace(/(.*)(rgb\([0-9, ]*\))(.*)/g,"$2")
if (!colors.includes(color))
colors.push(color);
}
}
}
console.log(colors)
Это дает вам список цветовых кодов, используемых в файле.Но есть еще 2 требования, которые нам нужны:
- Код цвета находится в форме RBG, мы требуем то же самое в коде HEX.
- Счетчик каждого кода цвета не извлекается ввывод.
Выход с использованием вышеуказанного кода: Результат с использованием JavaScript
Требуемый результат