2017-07-10 2 views
1

私はhttps://forums.adobe.com/thread/1536677からいくつかのコードを取得し、これは私が、私はいくつかは、など、変換を行うためにScriptListener.8liを使用することができ、これを生成するScriptListener.8liを書いたり、使用方法を知りたいこのようなPhotoshopのアクションマネージャーコードを書くには?

function getLBounds(){ 
    var ref = new ActionReference(); 
    ref.putEnumerated(charIDToTypeID("Lyr ") , charIDToTypeID("Ordn"), charIDToTypeID("Trgt")); 
    desc1 = executeActionGet(ref); 
    desc1 = desc1.getObjectValue(stringIDToTypeID('bounds')); 
    desc1Top = desc1.getUnitDoubleValue(stringIDToTypeID('top')); 
    desc1Bottom = desc1.getUnitDoubleValue(stringIDToTypeID('bottom')); 
    desc1Left = desc1.getUnitDoubleValue(stringIDToTypeID('left')); 
    desc1Right = desc1.getUnitDoubleValue(stringIDToTypeID('right')); 
    rObj = {top:desc1Top, left:desc1Left, bottom:desc1Bottom, right:desc1Right}; 
    return rObj; 
} 

層の境界を得ることができます。しかし、私は情報を取得する方法を知らない。多くの感謝!

// ======================================================= 
var idTrnf = charIDToTypeID("Trnf"); 
var desc2 = new ActionDescriptor(); 
var idFTcs = charIDToTypeID("FTcs"); 
var idQCSt = charIDToTypeID("QCSt"); 
var idQcsa = charIDToTypeID("Qcsa"); 
desc2.putEnumerated(idFTcs, idQCSt, idQcsa); 

var idOfst = charIDToTypeID("Ofst"); 
var desc3 = new ActionDescriptor(); 
var idHrzn = charIDToTypeID("Hrzn"); 
var idPxl = charIDToTypeID("#Pxl"); 
desc3.putUnitDouble(idHrzn, idPxl, 0.000000); 
var idVrtc = charIDToTypeID("Vrtc"); 
var idPxl = charIDToTypeID("#Pxl"); 
desc3.putUnitDouble(idVrtc, idPxl, 0.013677); 

var idOfst = charIDToTypeID("Ofst"); 
desc2.putObject(idOfst, idOfst, desc3); 
var idWdth = charIDToTypeID("Wdth"); 
var idPrc = charIDToTypeID("#Prc"); 
desc2.putUnitDouble(idWdth, idPrc, 86.486860); 
var idHght = charIDToTypeID("Hght"); 
var idPrc = charIDToTypeID("#Prc"); 
desc2.putUnitDouble(idHght, idPrc, -88.215838); 

var idSkew = charIDToTypeID("Skew"); 
var desc4 = new ActionDescriptor(); 
var idHrzn = charIDToTypeID("Hrzn"); 
var idAng = charIDToTypeID("#Ang"); 
desc4.putUnitDouble(idHrzn, idAng, 0.033079); 
var idVrtc = charIDToTypeID("Vrtc"); 
var idAng = charIDToTypeID("#Ang"); 
desc4.putUnitDouble(idVrtc, idAng, 0.000000); 

var idPnt = charIDToTypeID("Pnt "); 
desc2.putObject(idSkew, idPnt, desc4); 
var idAngl = charIDToTypeID("Angl"); 
var idAng = charIDToTypeID("#Ang"); 
desc2.putUnitDouble(idAngl, idAng, -170.957285); 
executeAction(idTrnf, desc2, DialogModes.NO); 

PS:最後のコードはScriptListener.8liという形式で生成されます。最初の関数getLBoundsの生成方法を知りたいと思います。

答えて

0

4文字のスクリプトリスナーコードのリストがあります。例えば、"Trnf"は変換されます。 Googleはあなたの友人です。

しかし、各コマンドを順番に調べて、各パラメータを順番に調べるのは簡単です。私はあなたのビットのコードが非回転でイメージレイヤーを回転させたり縮小したりすることがわかりました。ちょっとしたスキューと少しの小さなオフセットを追加しました。

// ======================================================= 
var idTrnf = charIDToTypeID("Trnf"); 
var desc2 = new ActionDescriptor(); 
var idFTcs = charIDToTypeID("FTcs"); 
var idQCSt = charIDToTypeID("QCSt"); 
var idQcsa = charIDToTypeID("Qcsa"); 
desc2.putEnumerated(idFTcs, idQCSt, idQcsa); 
var idOfst = charIDToTypeID("Ofst"); 
var desc3 = new ActionDescriptor(); 
var idHrzn = charIDToTypeID("Hrzn"); 
var idPxl = charIDToTypeID("#Pxl"); 
desc3.putUnitDouble(idHrzn, idPxl, 0.000000); // X transform offest amount in pixels 
var idVrtc = charIDToTypeID("Vrtc"); 
var idPxl = charIDToTypeID("#Pxl"); 
desc3.putUnitDouble(idVrtc, idPxl, 0.013677); // Y transform offest amount in pixels 
var idOfst = charIDToTypeID("Ofst"); 
desc2.putObject(idOfst, idOfst, desc3); 
var idWdth = charIDToTypeID("Wdth"); 
var idPrc = charIDToTypeID("#Prc"); 
desc2.putUnitDouble(idWdth, idPrc, 86.486860); // Width amount % 
var idHght = charIDToTypeID("Hght"); 
var idPrc = charIDToTypeID("#Prc"); 
desc2.putUnitDouble(idHght, idPrc, -88.215838); // Height amount % 
var idSkew = charIDToTypeID("Skew"); 
var desc4 = new ActionDescriptor(); 
var idHrzn = charIDToTypeID("Hrzn"); 
var idAng = charIDToTypeID("#Ang"); 
desc4.putUnitDouble(idHrzn, idAng, 0.033079); //skew horizontal amount 
var idVrtc = charIDToTypeID("Vrtc"); 
var idAng = charIDToTypeID("#Ang"); 
desc4.putUnitDouble(idVrtc, idAng, 0.000000); // skew vertical amount 
var idPnt = charIDToTypeID("Pnt "); 
desc2.putObject(idSkew, idPnt, desc4); 
var idAngl = charIDToTypeID("Angl"); 
var idAng = charIDToTypeID("#Ang"); 
desc2.putUnitDouble(idAngl, idAng, -170.957285); // rotational angle amount= 9.042715 
executeAction(idTrnf, desc2, DialogModes.NO); 

ほとんどのパラメータは、Photoshopのメニューに表示される順序と同じです。それは、それぞれが何をしているのかを解消するプロセスです。

+0

はい、それはScriptListener.8liから来ていますが、私はfunciton getLBounds()のようなコードを生成する方法を知りたいのですが、より正確にはexecuteActionGet関数を呼び出す方法は?どうも! –

+0

scriptlistenerがコードを生成します。それをパラメータ化して関数に入れなければなりません。 [Photoshop Scripting Guide]のイベントIDとクラスIDを見つけるためにScriptListenerを使用するを読んでください(http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/photoshop/pdfs/photoshop-cc-scripting-guide -2015.pdf) –

+0

ああ、私はそれを読んだだけで、イベントIDを与えます。関数getLBoundsでは、executeActionGet()はレイヤの説明を取得しますが、それは単なる推測です。その後 –

関連する問題