Photoshop JSX脚本动态更改图层文本

时间:2016-11-21 08:49:15

标签: jsx extendscript photoshop-script

我想动态更改photoshop中图层的文本并以PNG格式导出。 但是,我无法想出一种方法将参数传递给我的jsx脚本。 我运行以下命令,但参数"图层文本"没有传递给jsx脚本。

arguments.length 始终为 0

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);

1 个答案:

答案 0 :(得分: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"
谢谢你 毫克