我正在尝试编写一个脚本来自动化从我们根据使用情况自定义的 Photoshop 文件中的多个填充图层中提取颜色的过程。问题是似乎没有办法读取填充层的指定颜色。
我已经尝试了我能想到的一切,但没有任何效果。这是迄今为止我得到的最接近的:
在这个论坛中,我找到了一种读取样本值和名称的方法。我使用了 Scripting Listener 插件来记录动作,但是当双击填充层缩略图并点击“添加到样本”时,我得到的只是这样的:
var idMk = charIDToTypeID( "Mk " );
var desc90 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref42 = new ActionReference();
var idClrs = charIDToTypeID( "Clrs" );
ref42.putClass( idClrs );
desc90.putReference( idnull, ref42 );
var idUsng = charIDToTypeID( "Usng" );
var desc91 = new ActionDescriptor();
var idNm = charIDToTypeID( "Nm " );
desc91.putString( idNm, """Swatch 3""" );
var idClr = charIDToTypeID( "Clr " );
var desc92 = new ActionDescriptor();
var idRd = charIDToTypeID( "Rd " );
desc92.putDouble( idRd, 229.000397 );
var idGrn = charIDToTypeID( "Grn " );
desc92.putDouble( idGrn, 137.001801 );
var idBl = charIDToTypeID( "Bl " );
desc92.putDouble( idBl, 135.997925 );
var idRGBC = charIDToTypeID( "RGBC" );
desc91.putObject( idClr, idRGBC, desc92 );
var idClrs = charIDToTypeID( "Clrs" );
desc90.putObject( idUsng, idClrs, desc91 );
executeAction( idMk, desc90, DialogModes.NO );
也就是说,我得到了我当时选择的具体值,但没有办法在循环中实现它(至少我能想到)。
另外,如果我能找到一种方法让每个填充层的颜色依次成为前景色,那么我知道我可以读懂,但我怎么才能做到呢?吸管似乎是一种选择,但我想不出一种使它起作用的方法。
有任何想法吗?