Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to extract layer rotation (transform) in jsx photoshop script?

After I use Free Transform tool to rotate layer by 90 degrees...

How do I find this value using jsx script?

like image 352
psycho brm Avatar asked Nov 13 '13 14:11

psycho brm


1 Answers

Oh my good, it took me 4 hours to find this out :(

function angleFromMatrix(yy, xy)
{
    var toDegs = 180/Math.PI;
    return Math.atan2(yy, xy) * toDegs - 90;
}

function getActiveLayerRotation()
{
    var ref = new ActionReference();
    ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
    var desc = executeActionGet(ref).getObjectValue(stringIDToTypeID('textKey'))
    if (desc.hasKey(stringIDToTypeID('transform')))
    {
        desc = desc.getObjectValue(stringIDToTypeID('transform'))
        var yy = desc.getDouble(stringIDToTypeID('yy'));
        var xy = desc.getDouble(stringIDToTypeID('xy'));
        return angleFromMatrix(yy, xy);
    }
    return 0;
}
like image 84
psycho brm Avatar answered Oct 12 '22 20:10

psycho brm