将文本层对齐到另一个参考层中心的脚本

问题描述 投票:1回答:1

文本层的内容是从csv导入添加的。有些短,有些长,包含2个字,在该层中占用2行。我需要的是添加内容后,该层应在水平和垂直方向上与另一层对齐。我想使用脚本进行此对齐。

var doc = app.activeDocument;
var grps = doc.layerSets;
var pnamegrp = grps.getByName('Group 1');
var childlyr = pnamegrp.layers.getByName('child');
childlyr.textItem.contents = pname; //come from a csv file 

var parentlyr=  pnamegrp.layers.getByName('ReferenceRectangle');
Align_HorizCenter_VerticalCenter_withreference( childlyr , parent);


function Align_HorizCenter_VerticalCenter_withreference( child, parent){
  //need help to write this
}

我正在使用Photoshop cc 2015和JavaScript jsx文件脚本。

photoshop-script
1个回答
0
投票

以防万一有人在寻找解决方案。翻译是移动图层的方法。可以通过目标层和参考层之间的宽度差来确定要移动的像素数。

var startRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.INCHES;

var doc = app.activeDocument; 
var grps = doc.layerSets;
var pnamegrp = grps.getByName('Group 1');
var pnamelyr= pnamegrp.layers.getByName('pname'); //target
var pnameREF = pnamegrp.layers.getByName('Rectangle 1'); //reference var    LB = pnameREF.bounds;
var RWidth = (LB[2].value) - (LB[0].value);
var RHeight = (LB[3].value) - (LB[1].value);
pnamelyr.textItem.contents = pnamearr[i];
LB = pnamelyr.bounds;
TWidth = (LB[2].value) - (LB[0].value);
THeight = (LB[3].value) - (LB[1].value);



var OffsetX =  (RWidth - TWidth)/2;
var OffsetY =  (RHeight -  THeight)/2;


pnameTGT.translate(OffsetX,OffsetY); //move layer by offset pixels from the current position    
© www.soinside.com 2019 - 2024. All rights reserved.