Ausgabe
Ich muss Menschen in einer großen Anzahl von Bildern automatisch auswählen können. Ich kenne ihre Koordinaten, Breite und Höhe, würde aber idealerweise eine humanoidere Auswahl bevorzugen, und es scheint über die normale Objektauswahl über die Benutzeroberfläche großartig zu funktionieren. Jetzt frage ich mich, ob ich das mit Photoshop-Scripting machen kann? Alle Hinweise geschätzt!
Zur Verdeutlichung spreche ich von dem kürzlich hier vorgestellten Objektauswahl-Tool .
Danke an alle!
Lösung
Ich habe es geschafft, das zum Laufen zu bringen. Falls es jemanden interessiert:
Angenommen, die Koordinaten des Begrenzungsrahmens (oben, links, unten, rechts) werden gefunden.
var idset = stringIDToTypeID( "set" );
var desc4 = new ActionDescriptor();
var idnull = stringIDToTypeID( "null" );
var ref3 = new ActionReference();
var idchannel = stringIDToTypeID( "channel" );
var idselection = stringIDToTypeID( "selection" );
ref3.putProperty( idchannel, idselection );
desc4.putReference( idnull, ref3 );
var idto = stringIDToTypeID( "to" );
var desc5 = new ActionDescriptor();
var idtop = stringIDToTypeID( "top" );
var idpixelsUnit = stringIDToTypeID( "pixelsUnit" );
desc5.putUnitDouble( idtop, idpixelsUnit, top );
var idleft = stringIDToTypeID( "left" );
var idpixelsUnit = stringIDToTypeID( "pixelsUnit" );
desc5.putUnitDouble( idleft, idpixelsUnit, left );
var idbottom = stringIDToTypeID( "bottom" );
var idpixelsUnit = stringIDToTypeID( "pixelsUnit" );
desc5.putUnitDouble( idbottom, idpixelsUnit, bottom );
var idright = stringIDToTypeID( "right" );
var idpixelsUnit = stringIDToTypeID( "pixelsUnit" );
desc5.putUnitDouble( idright, idpixelsUnit, right );
var idrectangle = stringIDToTypeID( "rectangle" );
desc4.putObject( idto, idrectangle, desc5 );
var iddeepSelect = stringIDToTypeID( "deepSelect" );
desc4.putBoolean( iddeepSelect, true );
var idobjectSelectionMode = stringIDToTypeID( "objectSelectionMode" );
desc4.putInteger( idobjectSelectionMode, 0 );
var idmagicLassoAutoEnhance = stringIDToTypeID( "magicLassoAutoEnhance" );
desc4.putBoolean( idmagicLassoAutoEnhance, true );
var idsmartSubtract = stringIDToTypeID( "smartSubtract" );
desc4.putBoolean( idsmartSubtract, true );
executeAction( idset, desc4, DialogModes.NO );
Diese Codes können über den ScriptingListener ( hier verfügbar ) abgerufen werden.
Beantwortet von – Phantomhive
Antwort geprüft von – Timothy Miller (FixError Admin)