比较photoshop中的像素值

时间:2011-11-13 15:34:15

标签: javascript photoshop

我想制作一个小的photoshop javascript。从技术上讲,我只需要知道如何比较像素af的颜色值,如果它们是一个每个都有三个整数值的数组,例如:(伪代码)

for all pixels x
    for all pixels y
        if left pixel's green channel is bigger than red channel:
            set the blue channel to 25
        else
            if the blue channel is greater than 50
                set the green channel to 0

在文档中,你可以做很多像过滤器,文本和图层的事情,但你怎么做这么简单的事情呢?

1 个答案:

答案 0 :(得分:2)

在Photoshop脚本中读取和写入像素值确实不是那么简单......请查看以下脚本,该脚本反转图像的蓝色通道:

var doc = app.open(new File("~/Desktop/test1.bmp"));

var sampler = doc.colorSamplers.add([0, 0]);

for (var x = 0; x < doc.width; ++x) {
    for (var y = 0; y < doc.height; ++y) {        

        sampler.move([x, y]);
        var color = sampler.color;

        var region = [
            [x, y],
            [x + 1, y],
            [x + 1, y + 1],
            [x, y + 1],
            [x, y]
        ];

        var newColor = new SolidColor();
        newColor.rgb.red = color.rgb.red;
        newColor.rgb.green = 255 - color.rgb.green;
        newColor.rgb.blue = color.rgb.blue;

        doc.selection.select(region);
        doc.selection.fill(newColor);

    }
}

我不确定设置像素颜色是否比选择+填充技巧更漂亮。

这个脚本运行得非常慢,所以也许Photoshop脚本不是像素操作的最佳工具......