Javascript 如何将智能对象层中心与画布对齐?
我整天都在谷歌上搜索,想找到一种方法,通过脚本将转换为智能对象中心的层与画布对齐,但到目前为止还没有找到解决方案。我最终得到了下面的代码,但它不起作用。有人能帮忙吗Javascript 如何将智能对象层中心与画布对齐?,javascript,photoshop-script,Javascript,Photoshop Script,我整天都在谷歌上搜索,想找到一种方法,通过脚本将转换为智能对象中心的层与画布对齐,但到目前为止还没有找到解决方案。我最终得到了下面的代码,但它不起作用。有人能帮忙吗 var baseFile = new File(openDialog()); //open base JPEG file var workFile = new File(openDialog()); //open work JPEG file var baseDoc = app.open(baseFile); var workDoc
var baseFile = new File(openDialog()); //open base JPEG file
var workFile = new File(openDialog()); //open work JPEG file
var baseDoc = app.open(baseFile);
var workDoc = app.open(workFile);
createSO(workDoc.layers[0]);
workDoc.resizeImage(280,280);
workDoc.artLayers[0].duplicate(baseDoc, ElementPlacement.INSIDE);
app.activeDocument = baseDoc;
var Hoffset = (baseDoc.width - workDoc.width) / 2;
var Voffset = (baseDoc.height - workDoc.height) / 2;
baseDoc.layers[1].position = Array(Hoffset, Voffset);
function createSO(){
var doc = app.activeDocument;
var idnewPlacedLayer = stringIDToTypeID( "newPlacedLayer" );
executeAction( idnewPlacedLayer, undefined, DialogModes.NO );
return doc.activeLayer;
}
我想你可以这样简化一下:
var baseFile = new File(openDialog()); //open base JPEG file
var workFile = new File(openDialog()); //open work JPEG file
var baseDoc = app.open(baseFile);
var workDoc = app.open(workFile, undefined, true);
workDoc.resizeImage(280, 280);
var duplicated = workDoc.artLayers[0].duplicate(baseDoc, ElementPlacement.INSIDE);
var Hoffset = (baseDoc.width - workDoc.width) / 2;
var Voffset = (baseDoc.height - workDoc.height) / 2;
app.activeDocument = baseDoc;
duplicated.translate(Hoffset, Voffset);
这里的重点是使用翻译方法;但是,您也可以避免使用app.open的第三个参数(即asSmartObject)创建createSO函数