I automate Photoshop using JavaScript, here is my code:
var originalRulerUnits = app.preferences.rulerUnits
originalRulerUnits = Units.PIXELS
displayDialogs = DialogModes.NO
var fileRef = new File( "C:\Users\...\Desktop\...\...\test.png" );
app.open( fileRef );
var docRef = app.activeDocument;
So this code works fine, but next when I’m trying
docRef.selection.selectEllipse(
{top: 50, left: 70, bottom: 140, right: 100},
constants.SelectionType.EXTEND
);
or
docRef.selection.selectColumn(90);
with or without await keyword, or
docRef.selectEllipse({top: 0, left: 0, bottom: 100, right: 100});
and etc., nothing happens?
I’ve found these methods in Adobe documentation:
https://developer.adobe.com/photoshop/uxp/2022/ps_reference/classes/selection/#selectall
but they aren’t present in photoshop-javascript-ref-2020.pdf , neither in photoshop-scripting-guide-2020.pdf ( https://github.com/Adobe-CEP/CEP-Resources/tree/master/Documentation/Product%20specific%20Documentation/Photoshop%20Scripting )
I’m using Photoshop 25.0.0, but those Instruments (-Elliptical Marquee Tool; -Single Column Marquee Tool; -Polygonal Lasso Tool; -Rectangular Marquee Tool) were in Photoshop for many years, and for example methods like .select()
var shapeRef = [ [x2, y2], [width, y2], [width, height], [x2, height] ];
docRef.selection.select(shapeRef);
or .selectAll()
works fine.
So what am I doing wrong?
2
Answers
So, I posted the same question on the Adobe forum: https://community.adobe.com/t5/photoshop-ecosystem-discussions/javascript-why-methods-selectellipse-selectcolumn-selectpolygon-and-etc-don-t-work/m-p/14718959#M818766
and received the following answer: these methods work only for new UXP/BatchPlay code (.psjs), while ExtendScript/Action Manager code (.jsx) is legacy, and in it, these methods discussed in my question do not work. "These methods can be found in the UXP reference - and not in the Javascript reference."
When in doubt – use the scriptlistener – which will give you this function to select a ellipse (can be changed to rectangle with a few adjustments)