2009-04-26 81 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操作?我現在沒有關於掃描部分,但其餘的都可以通過很簡單的操作完成。