Ausgabe
Ich habe mehrere Bilder mit Text drauf. Ich habe die Koordinaten jedes Wortes als oben, links, Breite und Höhe. Wie kann ich jedes Wort auswählen (mithilfe von Koordinaten) und es mit inhaltsbewusster Füllung entfernen? wo soll ich anfangen? Verwenden Sie Aktion, Skript, Plugin oder irgendetwas anderes?
Lösung
Hoffentlich wird das tun, was Sie wollen:
// 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 );
}
Beantwortet von – Ghoul Fool
Antwort geprüft von – Gilberto Lyons (FixError Admin)