Home > Back-end >  how to select an object by coordinates in Photoshop script? and remove that using content aware fill
how to select an object by coordinates in Photoshop script? and remove that using content aware fill

Time:04-10

I have multiple images with text on them. I have coordinates of each word as top, left, width and height. how can I select each word (using coordinates) and remove it using content aware fill. where I should start? using action, script, plugin or anything else?

CodePudding user response:

Hopefully this will do what you want:

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