【发布时间】:2016-05-16 01:58:02
【问题描述】:
所以我的最终目标是在角落创建 4 个圆形选择,但是在查看文档并搜索了很多次之后,除了矩形选择区域之外,我找不到任何信息。我相信应该是一个解决方案,但我真的想不出任何不涉及为圆形设置大量边界像素位置的事情(我什至不确定工作,因为我对 Photoshop 脚本及其工作原理还很陌生)。
非常感谢!
【问题讨论】:
标签: javascript photoshop ellipse photoshop-script
所以我的最终目标是在角落创建 4 个圆形选择,但是在查看文档并搜索了很多次之后,除了矩形选择区域之外,我找不到任何信息。我相信应该是一个解决方案,但我真的想不出任何不涉及为圆形设置大量边界像素位置的事情(我什至不确定工作,因为我对 Photoshop 脚本及其工作原理还很陌生)。
非常感谢!
【问题讨论】:
标签: javascript photoshop ellipse photoshop-script
Photoshop 脚本 API 不完整,有时您会在尝试完成某些任务时遇到困难。处理这个问题的一个很好的工具是 Adobe 自己的 ScriptListener 插件。找出它吐出的代码需要一点时间,但这将有助于用您的脚本填补漏洞。下面是我用来进行循环选择的函数:
function makeCircle(left,top,right,bottom,antiAlias){
var circleSelection = charIDToTypeID( "setd" );
var descriptor = new ActionDescriptor();
var id71 = charIDToTypeID( "null" );
var ref5 = new ActionReference();
var id72 = charIDToTypeID( "Chnl" );
var id73 = charIDToTypeID( "fsel" );
ref5.putProperty( id72, id73 );
descriptor.putReference( id71, ref5 );
var id74 = charIDToTypeID( "T " );
var desc12 = new ActionDescriptor();
var top1 = charIDToTypeID( "Top " );
var top2 = charIDToTypeID( "#Pxl" );
desc12.putUnitDouble( top1, top2, top );
var left1 = charIDToTypeID( "Left" );
var left2 = charIDToTypeID( "#Pxl" );
desc12.putUnitDouble( left1, left2, left );
var bottom1 = charIDToTypeID( "Btom" );
var bottom2 = charIDToTypeID( "#Pxl" );
desc12.putUnitDouble( bottom1, bottom2, bottom );
var right1 = charIDToTypeID( "Rght" );
var right2 = charIDToTypeID( "#Pxl" );
desc12.putUnitDouble( right1, right2, right );
var id83 = charIDToTypeID( "Elps" );
descriptor.putObject( id74, id83, desc12 );
var id84 = charIDToTypeID( "AntA" );
descriptor.putBoolean( id84, antiAlias );
executeAction( circleSelection, descriptor, DialogModes.NO );
}
【讨论】: