使用extendscript(javascript)如何从Photoshop颜色表中获取颜色值

时间:2013-09-04 00:11:59

标签: photoshop extendscript

我正在使用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
}

1 个答案:

答案 0 :(得分:0)

xbytor编写了几个用于访问颜色表的脚本。这个link可能对您有用。