Javascript Photoshop CS5脚本填充内容感知

Javascript Photoshop CS5脚本填充内容感知,javascript,photoshop-script,Javascript,Photoshop Script,我花了一天半的时间将一些复杂的数学图形渲染成数百个文件,现在才意识到我忘了从图像右下角移除一个小的白色框 所以我希望能自动修复。我已经能够手动使用photoshop cs5中的内容感知填充来删除它,并且想为数百个其他人编写一个javascript脚本 但是,在Selection.fill(…)的javascript引用中,filltype参数的类型为SolidColor。这是使用填充的唯一方法吗?奇怪的是,在本文档中搜索内容感知时,什么也找不到,那么该功能是否不可编写脚本?我还没有在网上找到这个

我花了一天半的时间将一些复杂的数学图形渲染成数百个文件,现在才意识到我忘了从图像右下角移除一个小的白色框

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

但是,在Selection.fill(…)的javascript引用中,filltype参数的类型为SolidColor。这是使用填充的唯一方法吗?奇怪的是,在本文档中搜索内容感知时,什么也找不到,那么该功能是否不可编写脚本?我还没有在网上找到这个,可能是因为有很多人说这个功能太神奇了,它淹没了所有的脚本结果


谢谢

也许可以用photosho中的一个动作来代替,并记录这个过程。。。然后在文件夹上批量播放以重新处理所有图像

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

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


如果你的解决方案曾经存在于photoshop中,为什么要重新发明轮子?使用现有工具有助于提高生产过程中的投资回报率。

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

如何确定正确的描述符格式和事件?通过查看名为ScriptListener的插件的输出。安装ScriptListener插件后,将在桌面上创建一个日志文件,记录您在Photoshop中作为可执行ExtendScript代码执行的所有操作。在安装ScriptListener的情况下启动Photoshop,执行要编写代码的操作,并检查桌面上日志的内容,以找到适当的ActionDescriptor和事件


ScriptListener插件发布在上。

以下是您将在ScriptingListener.log中看到的操作管理器代码:

// =======================================================
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 ); 
}

我没有答案,但你可以在一个专门讨论脚本->PS脚本()的论坛上看到答案。这个功能似乎还没有在中实现。