Javascript 通过在photoshop cc 20.0.0中的智能对象(替换层)批中编写脚本来替换内容
因此,我将这些28*.tif图像文件作为28层(智能对象)排列在一个.psd文件中,并希望用另一个.tif文件替换每一层。我希望使用如下循环运行一些脚本(jsx):Javascript 通过在photoshop cc 20.0.0中的智能对象(替换层)批中编写脚本来替换内容,javascript,json,jsx,photoshop,Javascript,Json,Jsx,Photoshop,因此,我将这些28*.tif图像文件作为28层(智能对象)排列在一个.psd文件中,并希望用另一个.tif文件替换每一层。我希望使用如下循环运行一些脚本(jsx): for (i=1;i<=28;i++) { for j in (start,end) { for k in (a,b,c,d,e,f) { file = 'chr' + $i + '_' + $j + '_' + $k; }}} 这将获取JSON
for (i=1;i<=28;i++) {
for j in (start,end) {
for k in (a,b,c,d,e,f) {
file = 'chr' + $i + '_' + $j + '_' + $k;
}}}
这将获取JSON中的输入并替换文本,同样,也可以替换给出文件路径的图像 它只需查找图层组,然后用文本或您选择的文件替换内容,然后将jpg和PSD文件保存在输出文件夹中 您可以在此处看到代码:
尝试此代码 它将遍历所有层,并将其替换为您选择的.tiff文件
var doc = app.activeDocument;
function editContent() {
cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };
function Rename() {
// Edit Contents
function step1(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
executeAction(sTID('placedLayerEditContents'), desc1, dialogMode);
};
step1(); // Edit Contents
};
Rename.main = function () {
Rename();
};
Rename.main();
}
function merge() {
var fileRef = File.openDialog ('Choose File', ['*.tif;*tiff'], true);
app.open( new File( fileRef ) );
if(app.activeDocument.activeLayer.isBackgroundLayer ) app.activeDocument.activeLayer.name = 'From Background';
app.activeDocument.selection.selectAll();
app.activeDocument.selection.copy();
app.activeDocument.selection.deselect();
var idMk = charIDToTypeID( "Mk " );
var desc8946 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref1324 = new ActionReference();
var idBckL = charIDToTypeID( "BckL" );
ref1324.putClass( idBckL );
desc8946.putReference( idnull, ref1324 );
var idUsng = charIDToTypeID( "Usng" );
var ref1325 = new ActionReference();
var idLyr = charIDToTypeID( "Lyr " );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref1325.putEnumerated( idLyr, idOrdn, idTrgt );
desc8946.putReference( idUsng, ref1325 );
executeAction( idMk, desc8946, DialogModes.NO );
app.activeDocument.close(SaveOptions.SAVECHANGES);
app.activeDocument.artLayers.add();
app.activeDocument.paste();
app.activeDocument.flatten();
app.activeDocument.close(SaveOptions.SAVECHANGES);
}
for (var i=0;i<doc.layers.length;i++){
doc.activeLayer=doc.layers[i];
editContent();
merge();
}
var doc=app.activeDocument;
函数editContent(){
cTID=函数{return app.charIDToTypeID;};
sTID=函数{返回app.stringIDToTypeID;};
函数重命名(){
//编辑内容
功能步骤1(启用,带对话框){
如果(已启用!=未定义&&!已启用)
回来
var dialogMode=(withDialog?DialogModes.ALL:DialogModes.NO);
var desc1=新的ActionDescriptor();
执行操作(sTID('placedLayerEditContents')、描述1、对话模式);
};
步骤1();//编辑内容
};
Rename.main=函数(){
重命名();
};
Rename.main();
}
函数merge(){
var fileRef=File.openDialog('Choose File',['*.tif;*tiff'],true);
app.open(新文件(fileRef));
如果(app.activeDocument.activeLayer.isBackgroundLayer)app.activeDocument.activeLayer.name='From Background';
app.activeDocument.selection.selectAll();
app.activeDocument.selection.copy();
app.activeDocument.selection.deselect();
var idMk=charIDToTypeID(“Mk”);
var desc8946=新的ActionDescriptor();
var idnull=charIDToTypeID(“null”);
var ref1324=新的ActionReference();
var idBckL=charIDToTypeID(“BckL”);
参考1324.putClass(idBckL);
desc8946.putReference(idnull,ref1324);
变量idUsng=charIDToTypeID(“Usng”);
var ref1325=新的ActionReference();
var idLyr=charIDToTypeID(“Lyr”);
var idOrdn=charIDToTypeID(“Ordn”);
var idTrgt=charIDToTypeID(“Trgt”);
参考1325.列举的腐败(idLyr、idOrdn、idTrgt);
说明8946.参考文献(同上,参考文献1325);
执行(idMk,desc8946,DialogModes.NO);
app.activeDocument.close(SaveOptions.SAVECHANGES);
app.activeDocument.artLayers.add();
app.activeDocument.paste();
app.activeDocument.flatte();
app.activeDocument.close(SaveOptions.SAVECHANGES);
}
对于(var i=0;如果函数名按以下顺序排列:chr$i\u$k\u$k
示例:chr1\u start\u a、chr1\u end\u q、chr22\u start\u b等,通常最好添加信息。问题到底是什么?
var doc = app.activeDocument;
function editContent() {
cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };
function Rename() {
// Edit Contents
function step1(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
executeAction(sTID('placedLayerEditContents'), desc1, dialogMode);
};
step1(); // Edit Contents
};
Rename.main = function () {
Rename();
};
Rename.main();
}
function merge() {
var fileRef = File.openDialog ('Choose File', ['*.tif;*tiff'], true);
app.open( new File( fileRef ) );
if(app.activeDocument.activeLayer.isBackgroundLayer ) app.activeDocument.activeLayer.name = 'From Background';
app.activeDocument.selection.selectAll();
app.activeDocument.selection.copy();
app.activeDocument.selection.deselect();
var idMk = charIDToTypeID( "Mk " );
var desc8946 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref1324 = new ActionReference();
var idBckL = charIDToTypeID( "BckL" );
ref1324.putClass( idBckL );
desc8946.putReference( idnull, ref1324 );
var idUsng = charIDToTypeID( "Usng" );
var ref1325 = new ActionReference();
var idLyr = charIDToTypeID( "Lyr " );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref1325.putEnumerated( idLyr, idOrdn, idTrgt );
desc8946.putReference( idUsng, ref1325 );
executeAction( idMk, desc8946, DialogModes.NO );
app.activeDocument.close(SaveOptions.SAVECHANGES);
app.activeDocument.artLayers.add();
app.activeDocument.paste();
app.activeDocument.flatten();
app.activeDocument.close(SaveOptions.SAVECHANGES);
}
for (var i=0;i<doc.layers.length;i++){
doc.activeLayer=doc.layers[i];
editContent();
merge();
}