2016-11-21 192 views
0

我想動態改變在Photoshop圖層的文字和導出爲PNG格式。 但是我不能想出一個辦法將參數傳遞給我的JSX腳本。 我運行下面的命令,但參數「層文本」是不是傳遞給JSX腳本。的Photoshop JSX腳本來更改層文本動態

arguments.length總是。

ExtendScript\ Toolkit -run ps.jsx "layer text" 

ps.jsx

#target photoshop 
// debug level: 0-2 (0:disable, 1:break on error, 2:break at beginning) 
$.level = 1; 
var doc = app.open(new File('image001.psd')); 
app.activeDocument.artLayers[0].textItem.contents = arguments[0]; 
var file = new File("./PhotoshopLayers/image.png"); 
var saveOptions = new PNGSaveOptions(); 
doc.saveAs(file, saveOptions, true, Extension.LOWERCASE); 

回答

0

我不知道如何通過命令行estk

傳遞參數,但我偶爾使用subtleGradient/node-photoshop: Control Adobe Photoshop and After Effects from Node.js在做類似的問題。

這裏有一個例子

安裝然後的NodeJS

cd ~/Desktop; mkdir test 
$ npm install photoshop 

寫app.js

// ~/Desktop/test/app.js 
function main(){ 
    var doc = app.open(new File('~/Desktop/test/image001.psd')); 
    app.activeDocument.artLayers[0].textItem.contents = arguments[0]; 
    var file = new File("~/Desktop/test/PhotoshopLayers/image.png"); 
    var saveOptions = new PNGSaveOptions(); 
    doc.saveAs(file, saveOptions, true, Extension.LOWERCASE); 
    return file 
} 

var photoshop = require("photoshop"); 
photoshop.invoke(main, [process.argv[2]], function (e,r) { 
    if (!e) { 
    console.log(r); 
    } 
}) 


$ node app.js "layer text" 

謝謝 毫克