javascript - 检测图案是否存在 Photoshop 脚本
问题描述
我正在尝试检测 Photoshop 上是否存在模式名称,但现在我无法做到这一点,有人知道如何做到这一点吗?现在我有这个:
function selectPattern(ptrn) {
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putName(charIDToTypeID('Ptrn'), ptrn );
desc.putReference( charIDToTypeID( "null" ), ref );
executeAction( charIDToTypeID( "slct" ), desc, DialogModes.NO );
}
但是每次我使用它时都找不到模式名称,它使用的是这样的:
selectPattern('Gauze');
提前致谢
解决方案
虽然这不能直接回答您的问题,但它可能对您有用:
您可以使用 scriptListener 找出模式的 ID。
// call the source document
var srcDoc = app.activeDocument;
fillWithPattern("456e6678-5dd6-5046-9e0c-12871fb51bb0");
function fillWithPattern (patternid)
{
// =======================================================
var idFl = charIDToTypeID( "Fl " );
var desc126 = new ActionDescriptor();
var idFrom = charIDToTypeID( "From" );
var desc127 = new ActionDescriptor();
var idHrzn = charIDToTypeID( "Hrzn" );
var idPxl = charIDToTypeID( "#Pxl" );
desc127.putUnitDouble( idHrzn, idPxl, 100.0 ); // x fill point
var idVrtc = charIDToTypeID( "Vrtc" );
var idPxl = charIDToTypeID( "#Pxl" );
desc127.putUnitDouble( idVrtc, idPxl, 100.0 ); //y fill point
var idPnt = charIDToTypeID( "Pnt " );
desc126.putObject( idFrom, idPnt, desc127 );
var idTlrn = charIDToTypeID( "Tlrn" );
desc126.putInteger( idTlrn, 0 );
var idUsng = charIDToTypeID( "Usng" );
var idFlCn = charIDToTypeID( "FlCn" );
var idPtrn = charIDToTypeID( "Ptrn" );
desc126.putEnumerated( idUsng, idFlCn, idPtrn );
var idPtrn = charIDToTypeID( "Ptrn" );
var desc128 = new ActionDescriptor();
var idNm = charIDToTypeID( "Nm " );
desc128.putString( idNm, "" ); // pattern name (ignored)
var idIdnt = charIDToTypeID( "Idnt" );
desc128.putString( idIdnt, patternid ); //pattern ID
var idPtrn = charIDToTypeID( "Ptrn" );
desc126.putObject( idPtrn, idPtrn, desc128 );
executeAction( idFl, desc126, DialogModes.NO );
}
推荐阅读
- function - 在文件数据存储中使用多个输出和输入变量运行的函数句柄
- java - 如何将 Jspinner 和双变量相乘?
- php - 在 WooCommerce 中根据用户 ID 自动生成用户名
- postgresql - XML 是否有 row_to_json 等价物?
- xml - 使用 xslt 将 XML 导入 InDesign 时出现无效的命名空间错误
- ruby-on-rails - 当前雇主为 X 前雇主为 Y 的 Activerecord 查询
- python - Python Open CV 图像流无需解码和重新编码?
- node.js - 如何使用 Node.js 从 SQLite3 中的先前插入将数据插入带有 lastID 的表中?
- javascript - 将嵌套数字数组的索引映射到字符串数组的索引
- autocomplete - 如何在 Visual Studio 的 C++ 中禁用 /// 的注释自动完成?