Photoshop CS5脚本填充内容感知

时间:2013-12-21 13:56:47

标签: javascript photoshop-script

我花了最后一天半将一些复杂的数学图形渲染成数百个文件,现在才意识到我忘记从图像的右下方删除一个小白框!

所以我希望自动修复。我已经能够手动使用photoshop cs5中的内容感知填充来删除它,并希望编写一个javascript脚本来为其他数百个人编写它。

但是,在Selection.fill(...)的javascript参考中,filltype参数的类型为SolidColor。这是使用填充的唯一方法吗?奇怪的是,在本文档中搜索内容时,没有任何内容,因此该功能无法编写脚本吗?我没有运气在网上寻找这个,也许是因为有很多东西出现在人们面前,说这个功能有多么令人惊讶,因为它淹没了任何脚本结果。

谢谢!

3 个答案:

答案 0 :(得分:1)

这是您将在ScriptingListener.log中看到的Action Manager代码:

// =======================================================
var idFl = charIDToTypeID( "Fl  " );
    var desc62295 = new ActionDescriptor();
    var idUsng = charIDToTypeID( "Usng" );
    var idFlCn = charIDToTypeID( "FlCn" );
    var idcontentAware = stringIDToTypeID( "contentAware" );
    desc62295.putEnumerated( idUsng, idFlCn, idcontentAware );
    var idOpct = charIDToTypeID( "Opct" );
    var idPrc = charIDToTypeID( "#Prc" );
    desc62295.putUnitDouble( idOpct, idPrc, 100.000000 );
    var idMd = charIDToTypeID( "Md  " );
    var idBlnM = charIDToTypeID( "BlnM" );
    var idNrml = charIDToTypeID( "Nrml" );
    desc62295.putEnumerated( idMd, idBlnM, idNrml );
executeAction( idFl, desc62295, DialogModes.NO );

这有点可怕,但可以轻松修改为类似的东西:

function contentAwareFill() {
    //works only with selection
    try {var SB = activeDocument.selection.bounds} 
    catch (e) {alert('content aware fill needs a selection'); return};

    //100% opacity, normal blending content aware fill
    var desc = new ActionDescriptor();
    desc.putEnumerated( charIDToTypeID( "Usng" ), charIDToTypeID( "FlCn" ), stringIDToTypeID( "contentAware" ) );
    executeAction( charIDToTypeID( "Fl  " ), desc, DialogModes.NO ); 
}

答案 1 :(得分:0)

也许用photosho中的动作代替并记录过程...然后批量播放文件夹以重新处理所有图像??

如果您不熟悉它,请从窗口中打开操作面板,然后创建一个新操作(操作面板中的页面图标)。现在只需record您想要处理的步骤,然后在完成后点击停止按钮。

记录操作后,您可以转到批处理菜单并在整个图像文件夹中循环操作。

如果您的解决方案在Photoshop中存在一次,为什么要重新发明轮子?使用现有工具可以帮助ROI按时在生产过程中花费时间。

答案 2 :(得分:0)

Photoshop Scripting DOM(文档对象模型)没有直接支持很多Photoshop的新功能。但是,您仍然可以通过为脚本创建操作描述符并直接执行事件来从脚本访问这些功能。

你如何弄清楚正确的描述符格式和事件是什么?通过查看名为ScriptListener的插件的输出。安装ScriptListener插件后,会在桌面上创建一个日志文件,将您在Photoshop中执行的所有操作记录为可执行的ExtendScript代码。安装ScriptListener启动Photoshop,执行您想要编码的操作,并检查桌面上日志的内容,以找到相应的ActionDescriptors和事件。

ScriptListener插件发布在Photoshop Developer Center