Я пишу скрипт Photoshop в extendscript/javascript, и я пытаюсь проверить, что документ использует только один цвет (плюс прозрачность) , Я бы хотел изменить режим документа на индексированный цвет, а затем получить значения в таблице цветов.Использование extendscript (javascript), как я могу получить значения цвета из таблицы цветов Photoshop
Я успешно изменил режим документа на индексированный цвет, но не могу понять, как получить доступ к таблице цветов или значениям цвета внутри него.
Моей рабочей альтернативой является использование colorSampler для сравнения значений каждого пикселя, но для работы над большими документами может потребоваться несколько минут, и скорость является проблемой для этого проекта.
Пожалуйста, дайте мне знать, есть ли способ получить доступ к таблице цветов или если вы видите способ сократить время, затрачиваемое на выполнение этой функции.
function sample_color(doc, sample_rate) {
var status = 'PASS'
var color_sampler = doc.colorSamplers.add([0,0])
var color_val = false //first (and hopefully only) color value in the document
var broke = false
for (x=1; x < doc.width; x+=sample_rate){
if (broke){
break
}
for (y=1; y < doc.height; y+=sample_rate){
color_sampler.move([UnitValue(x, 'px'), UnitValue(y, 'px')])
try{
var color = color_sampler.color //color of the current pixel
} catch(e) {
var color = false //color_sampler.color fails if the pixel is transparent
}
if (color != false){
if (color_val != false){
if (!color.isEqual(color_val)){
status = 'FAIL'
broke = true
break
}
} else {
color_val = color
}
}
}
}
color_sampler.remove()
return status
}
Я просмотрел примеры из xbytor, но не видел, как получить доступ к таблице цветов в Photoshop, не выписывая временный GIF. Я закончил использовать гистограмму. Первым шагом было дублирование документа. В дубликате скройте другие слои/группы. Слейте видимые слои. Выберите непрозрачные пиксели. Проверьте значения в гистограмме для каждого канала. Если в гистограмме больше, чем 0, в слое более одного цвета. –
Если бы вы решили записать файл .act palete (очевидно, что его трудно получить внутренне). Они довольно прямолинейны, когда файлы идут. –