2016-11-21 2 views
0

Je voudrais changer dynamiquement le texte d'une couche dans photoshop et l'exporter au format PNG. Cependant, je ne peux pas trouver un moyen de passer des arguments à mon script jsx. Je cours la commande suivante mais le paramètre "texte de couche" n'est pas passé au script jsx.Photoshop JSX Script pour changer le texte de la couche dynamiquement

arguments.length est toujours .

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

Répondre

0

Je ne sais pas comment passer des arguments par ESTK commandline

mais je l'utilise de temps en temps subtleGradient/node-photoshop: Control Adobe Photoshop and After Effects from Node.js à faire problème similaire.

ici est un exemple

installer nodejs puis

cd ~/Desktop; mkdir test 
$ npm install photoshop 

écrire 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" 

merci mg