如何解决用于获取图像层变换信息的 Photoshop 脚本
如下图所示,
如何在 Photoshop 脚本中获取宽度、高度和旋转角度。
Get Layer width,height and rotation angle
解决方法
你需要两件事。首先是一个将图层作为选区抓取的函数。其次,您需要获得图层边界 - 您可以从中计算出高度和宽度。
var currentLayer = app.activeDocument.activeLayer.name;
var currentLayerSelection = layer_selection();
var lb = get_selection_bounds();
alert(currentLayer + " layer bounds:\n" + lb[0] + "," + lb[1] + "," + lb[2] + "," + lb[3]);
// function GET SELECTION BOUNDS ()
// ----------------------------------------------------------------
function get_selection_bounds()
{
try
{
var x = parseFloat(app.activeDocument.selection.bounds[0]);
var y = parseFloat(app.activeDocument.selection.bounds[1]);
var x1 = parseFloat(app.activeDocument.selection.bounds[2]);
var y1 = parseFloat(app.activeDocument.selection.bounds[3]);
var selW = parseFloat(x1-x);
var selH = parseFloat(y1-y);
// return the results as an array
return [x,y,x1,y1];
}
catch(e)
{
alert("Oops " + e)
}
}
function layer_selection()
{
var id1268 = charIDToTypeID( "setd" );
var desc307 = new ActionDescriptor();
var id1269 = charIDToTypeID( "null" );
var ref257 = new ActionReference();
var id1270 = charIDToTypeID( "Chnl" );
var id1271 = charIDToTypeID( "fsel" );
ref257.putProperty( id1270,id1271 );
desc307.putReference( id1269,ref257 );
var id1272 = charIDToTypeID( "T " );
var ref258 = new ActionReference();
var id1273 = charIDToTypeID( "Chnl" );
var id1274 = charIDToTypeID( "Chnl" );
var id1275 = charIDToTypeID( "Trsp" );
ref258.putEnumerated( id1273,id1274,id1275 );
desc307.putReference( id1272,ref258 );
executeAction( id1268,desc307,DialogModes.NO )
}
您可以计算出高度和宽度:
var layerWidth = lb[2] - lb[0];
var layerHeight = lb[3] - lb[1];
alert("Width,height: " + layerWidth + "," + layerHeight);
至于角度..让我们说自己做要容易得多。
使用标尺工具 - 然后 Photoshop 将计算出角度。查看“图像”>“图像旋转”>“任意”,它会显示旋转画布以使其恢复水平的角度。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。