我正在try 使用Photoshop CC中的Java脚本来zoom 路径项.我需要用TOPCENTER约束来扩展它.此路径项绑定到文本层(用于路径上的文字).

在Photoshop中zoom 绑定到路径的文本图层时,它会zoom 路径,而不是文本.所以我试着zoom 实际的层--但它的行为并不像预期的那样.这只是对文本本身进行zoom .

app.activeDocument.activeLayer.resize(100, amount, AnchorPosition.TOPCENTER);

"调整大小"似乎不是路径项对象的方法之一.我知道你可以用脚本在Illustrator中zoom 路径,但它在这里不起作用.

app.activeDocument.pathItems[1].resize(100, amount, AnchorPosition.TOPCENTER);

Photoshop的documentation%似乎表明没有这样的方法.我是不是遗漏了什么?或者有什么替代方法,比如直接改变路径上的点的位置?

推荐答案

我会猜想您没有先 Select 路径项. 这对你应该很管用

select_path("Path 1");
resize_it(200,200);

function select_path(thepathname)
{
    // =======================================================
    var idslct = charIDToTypeID( "slct" );
    var desc70 = new ActionDescriptor();
    var idnull = charIDToTypeID( "null" );
    var ref16 = new ActionReference();
    var idPath = charIDToTypeID( "Path" );
    ref16.putName( idPath, thepathname ); // pathname here
    desc70.putReference( idnull, ref16 );
    executeAction( idslct, desc70, DialogModes.NO );
}

function resize_it(scaleX, scaleY)
{
  // =======================================================
  var idTrnf = charIDToTypeID( "Trnf" );
  var desc82 = new ActionDescriptor();
  var idnull = charIDToTypeID( "null" );
  var ref20 = new ActionReference();
  var idPath = charIDToTypeID( "Path" );
  var idOrdn = charIDToTypeID( "Ordn" );
  var idTrgt = charIDToTypeID( "Trgt" );
  ref20.putEnumerated( idPath, idOrdn, idTrgt );
  desc82.putReference( idnull, ref20 );
  var idFTcs = charIDToTypeID( "FTcs" );
  var idQCSt = charIDToTypeID( "QCSt" );
  var idQcszero = charIDToTypeID( "Qcs0" ); //Anchor
  desc82.putEnumerated( idFTcs, idQCSt, idQcszero );
  var idOfst = charIDToTypeID( "Ofst" );
  var desc83 = new ActionDescriptor();
  var idHrzn = charIDToTypeID( "Hrzn" );
  var idPxl = charIDToTypeID( "#Pxl" );
  desc83.putUnitDouble( idHrzn, idPxl, 0.000000 );
  var idVrtc = charIDToTypeID( "Vrtc" );
  var idPxl = charIDToTypeID( "#Pxl" );
  desc83.putUnitDouble( idVrtc, idPxl, 0.000000 );
  var idOfst = charIDToTypeID( "Ofst" );
  desc82.putObject( idOfst, idOfst, desc83 );
  var idWdth = charIDToTypeID( "Wdth" );
  var idPrc = charIDToTypeID( "#Prc" );
  desc82.putUnitDouble( idWdth, idPrc, scaleX ); // Scale X
  var idHght = charIDToTypeID( "Hght" );
  var idPrc = charIDToTypeID( "#Prc" );
  desc82.putUnitDouble( idHght, idPrc, scaleY ); // Scale Y
  var idLnkd = charIDToTypeID( "Lnkd" );
  desc82.putBoolean( idLnkd, true );
  executeAction( idTrnf, desc82, DialogModes.NO );

}

Javascript相关问答推荐

React Hooks中useState的同步问题

如何使用JavaScript用等效的功能性HTML替换标记URL格式?

TypScript界面中的Infer React子props

我试图实现用户验证的reduxstore 和操作中出了什么问题?

使用javascript将Plotly Expandable Sparkline转换为HighCharter Plot在bslib卡中

如何使覆盖div与可水平滚动的父div相关?

MathJax可以导入本地HTML文档使用的JS文件吗?

html + java script!需要帮助来了解为什么我得到(无效的用户名或密码)

CheckBox作为Vue3中的一个组件

为什么按钮会随浮动属性一起移动?

还原器未正确更新状态

使用领域Web SDK的Vite+Vue应用程序中的Web程序集(WASM)错误

闭包是将值复制到内存的另一个位置吗?

JS Animate()方法未按预期工作

Node.js API-queryAll()中的MarkLogic数据移动

JavaScript -复制到剪贴板在Windows计算机上无效

相对于具有选定类的不同SVG组放置自定义工具提示

浮动标签效果移除时,所需的也被移除

如何从图表中映射一组图表-js使用REACT

使用重新 Select 和对象理解 Select 器备忘