用于确定彩色或黑白照片的Photoshop脚本

时间:2017-08-02 18:29:03

标签: javascript scripting photoshop photoshop-script

我是Photoshop脚本的新手,我似乎无法找到相关的文档。我知道一些Applescript脚本,但是我读过Photoshop脚本很像JAVA脚本?

Anyhoo,我需要一个脚本来确定Photoshop中的活动文档是彩色照片还是黑白照片。我知道我认为它会起作用,但我不知道如何写它。我需要这个用于打印JPG文件的打印操作。因此,该脚本将始终运行完整的JPG文件。

以下是我对理论的思考以使其发挥作用:

  1. 复制背景图层。 (可以通过行动完成)
  2. 添加过滤器 - 模糊 - 新图层的平均值(可以通过操作完成)
  3. 如果在新图层上,红色通道等于蓝色通道,并且如果蓝色通道等于新图层上任何位置的绿色通道,并且全部具有相同的颜色和亮度,请执行“黑白”操作& #39;否则做颜色动作'。 (我需要一个脚本)
  4. 正如您已经想到的那样,背后的想法是制作一个可在任何地方测量的图层,以确定图像中是否有任何颜色。 这是我能想到的最佳方式,制作一个可以处理所有图像的脚本(不过是多层图像)。

    任何人都可以帮我处理这段代码吗?

1 个答案:

答案 0 :(得分:0)

我明白了。

#target photoshop

var savePathSH = "Macintosh HD:PATH1:"
var savePathFarve = "Macintosh HD:Users:PATH2:"
var doc = app.activeDocument
var fname = doc.name.split(".jpg")
var fname = fname[0]
var halfHeight = (app.activeDocument.height) / 2;
var halfWidth = (app.activeDocument.width) / 2;
var newLayer = doc.activeLayer.duplicate();

function saveJPG(name, savepath){
var doc = app.activeDocument;
    var file = new File(savepath + name + ".jpg");
var opts = new JPEGSaveOptions();
opts.quality = 12;

doc.saveAs(file, opts, true);
}

newLayer;

doc.activeLayer = doc.layers[0];

doc.activeLayer.applyAverage();

app.activeDocument.colorSamplers.removeAll();

var theSampler = app.activeDocument.colorSamplers.add([halfWidth,halfHeight]);

var currentColor = theSampler.color;

var redValue = theSampler.color.rgb.red;
var greenValue = theSampler.color.rgb.green;
var blueValue = theSampler.color.rgb.blue;

app.activeDocument.colorSamplers.removeAll();

doc.activeLayer.remove();

if (redValue == greenValue && greenValue == blueValue) {

    var BW = true
    } else {
    var BW = false
    }

    if (BW == true) {
saveJPG(fname, savePathSH);
} else {
saveJPG(fname, savePathFarve);
}