我想制作一个小的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
在文档中,你可以做很多像过滤器,文本和图层的事情,但你怎么做这么简单的事情呢?
答案 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脚本不是像素操作的最佳工具......