2009-04-26 80 views
0

我试图自动化在Photoshop中扫描/裁剪照片的过程。我需要一次扫描3张照片,然后使用Photoshop的裁剪和拉直照片命令,该命令会创建3个独立的图像。之后,我想将每个新创建的图像保存为PNG。如何自动化Photoshop?

我看着JSX脚本,他们似乎有很多承诺。我所描述的可能使用JavaScript或VBScript或其他方式在Photoshop中实现自动化吗?

+0

你试过谷歌吗?提示CodeProject ... – 2009-04-26 07:10:25

+0

谷歌从未想过我。。请链接。 – AngryHacker 2009-04-26 07:33:00

回答

1

我实际上在Adobe论坛上得到了关于Photoshop论坛的答案。事实证明,Photoshop CS4完全可以通过JavaScript,VBScript编写脚本,并且附带一个真正意义上的开发人员IDE,它具有您期望的一切(调试器,观察窗口,颜色编码等等)。我完全印象深刻。

以下为引用的摘录:

你可以运行下面的脚本,将创建一个新的文件夹关闭现有和批量分割的所有文件命名它们existingFileName#001.png并把它们在新的文件夹(编辑)

#target Photoshop 
app.bringToFront; 
var inFolder = Folder.selectDialog("Please select folder to process"); 
if(inFolder != null){ 
    var fileList = inFolder.getFiles(/\.(jpg|tif|psd|)$/i); 
    var outfolder = new Folder(decodeURI(inFolder) + "/Edited"); 
    if (outfolder.exists == false) outfolder.create(); 
    for(var a = 0 ;a < fileList.length; a++){ 
    if(fileList[a] instanceof File){ 
     var doc= open(fileList[a]); 
     doc.flatten(); 
     var docname = fileList[a].name.slice(0,-4); 
     CropStraighten(); 
     doc.close(SaveOptions.DONOTSAVECHANGES); 
     var count = 1; 
     while(app.documents.length){ 
      var saveFile = new File(decodeURI(outfolder) + "/" + docname +"#"+ zeroPad(count,3) + ".png"); 
      SavePNG(saveFile); 
      activeDocument.close(SaveOptions.DONOTSAVECHANGES) ; 
      count++; 
      } 
     } 
    } 
}; 
function CropStraighten() { 
    function cTID(s) { return app.charIDToTypeID(s); }; 
    function sTID(s) { return app.stringIDToTypeID(s); }; 
    executeAction(sTID('CropPhotosAuto0001'), undefined, DialogModes.NO); 
}; 
function SavePNG(saveFile){ 
    pngSaveOptions = new PNGSaveOptions(); 
    pngSaveOptions.embedColorProfile = true; 
    pngSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE; 
    pngSaveOptions.matte = MatteType.NONE; 
    pngSaveOptions.quality = 1; 
    pngSaveOptions.PNG8 = false; //24 bit PNG 
    pngSaveOptions.transparency = true; 
    activeDocument.saveAs(saveFile, pngSaveOptions, true, Extension.LOWERCASE); 
} 

function zeroPad(n, s) { 
    n = n.toString(); 
    while (n.length < s) n = '0' + n; 
    return n; 
}; 

访问here完整岗位。

+0

我会推荐使用JavaScript/ExtendScript来编写Photoshop脚本。不推荐使用其他语言(VBScript,AppleScript等),也不会为它们提供进一步的DOM支持。 – 2014-03-06 22:45:57

1

您是否尝试过使用Photoshop操作?我现在没有关于扫描部分,但其余的都可以通过很简单的操作完成。