如何在 Photoshop 脚本中通过坐标 select 对象?并使用内容感知填充删除它?

how to select an object by coordinates in Photoshop script? and remove that using content aware fill?

我有多张带有文字的图片。我将每个单词的坐标设置为顶部、左侧、宽度和高度。我如何 select 每个单词(使用坐标)并使用内容感知填充将其删除。我应该从哪里开始?使用动作、脚本、插件或其他任何东西?

希望这会如你所愿:

// Switch off any dialog boxes
displayDialogs = DialogModes.NO; // OFF 

var top = 10; // change these to your own coordinates
var left = 15;
var width = 75;
var height = 20;

// select a rectangle with the above coordinates
select_rectangle(top, left, top+height, left+width);

// content fill
content_fill();


// function SELECT RECTANGLE(top, left, bottom, right)
// --------------------------------------------------------
function select_rectangle(top, left, bottom, right)
{
  // Note: co-ordinates are same as script listener
  // and not so human-friendly as t,l,r,b.

  // deselect EVERYTHING first
  app.activeDocument.selection.deselect();

  // =======================================================
  var id1 = charIDToTypeID( "setd" );
  var desc1 = new ActionDescriptor();
  var id2 = charIDToTypeID( "null" );
  var ref1 = new ActionReference();
  var id3 = charIDToTypeID( "Chnl" );
  var id4 = charIDToTypeID( "fsel" );
  ref1.putProperty( id3, id4 );
  desc1.putReference( id2, ref1 );
  var id5 = charIDToTypeID( "T   " );
  var desc2 = new ActionDescriptor();
  var id6 = charIDToTypeID( "Top " );
  var id7 = charIDToTypeID( "#Pxl" );
  desc2.putUnitDouble( id6, id7, top );
  var id8 = charIDToTypeID( "Left" );
  var id9 = charIDToTypeID( "#Pxl" );
  desc2.putUnitDouble( id8, id9, left );
  var id10 = charIDToTypeID( "Btom" );
  var id11 = charIDToTypeID( "#Pxl" );
  desc2.putUnitDouble( id10, id11, bottom );
  var id12 = charIDToTypeID( "Rght" );
  var id13 = charIDToTypeID( "#Pxl" );
  desc2.putUnitDouble( id12, id13, right );
  var id16 = charIDToTypeID( "Rctn" );
  desc1.putObject( id5, id16, desc2 );

  executeAction( id1, desc1, DialogModes.NO );
}


function content_fill()
{
  // =======================================================
  var idFl = charIDToTypeID( "Fl  " );
  var desc461 = new ActionDescriptor();
  var idUsng = charIDToTypeID( "Usng" );
  var idFlCn = charIDToTypeID( "FlCn" );
  var idcontentAware = stringIDToTypeID( "contentAware" );
  desc461.putEnumerated( idUsng, idFlCn, idcontentAware );
  var idcontentAwareColorAdaptationFill = stringIDToTypeID( "contentAwareColorAdaptationFill" );
  desc461.putBoolean( idcontentAwareColorAdaptationFill, true );   // Color Adaptation
  var idOpct = charIDToTypeID( "Opct" );
  var idPrc = charIDToTypeID( "#Prc" );
  desc461.putUnitDouble( idOpct, idPrc, 100.000000 ); // Opacity
  var idMd = charIDToTypeID( "Md  " );
  var idBlnM = charIDToTypeID( "BlnM" );
  var idNrml = charIDToTypeID( "Nrml" ); // Normal
  desc461.putEnumerated( idMd, idBlnM, idNrml );
  executeAction( idFl, desc461, DialogModes.NO );
}