タグ: Javascript
[CEP] JSXファイルの動的読み込み
ExtendScript用OpenCVラッパー
基本的にNoReferenceでのご提供でございます。
こちらは/Library/Framework/に投入。
https://drive.google.com/open?id=1g9yBguBj61pEcO_tTWcNe41tkYllRc3C
以下を解凍すると必要なものが揃っています。
https://drive.google.com/open?id=1me95GKDUjn0BI3nIXsyCYkp6p8s_XPOU
全部同じ階層においておけば動作可能。Frameworkはユニバーサル構成ですから32bitのESTKからも実行可能。ExternalObjectをコールして帰ってくるのは顔のバウンズです。とりあえずjsxファイルの構成を確認してご利用ください。
恐らくOSX10.9以降なら動作するとおもわれます。
[AI]回転された配置画像の縮尺を計算するスクリプト
これ、この前詰まってた数学的な問題を解消できたやつです。
元ネタはいつものごとくフォーラムです。
https://forums.adobe.com/thread/2455224
して、コードはこちら
var tg = app.selection[0]; var mx = tg.matrix; var deg = Math.atan2(mx.mValueB, mx.mValueA) * 180 / Math.PI; var nm = new Matrix; nm.mValueA = nm.mValueD = 1; nm.mValueB = nm.mValueC = 0; var rtmx = app.concatenateRotationMatrix(nm, deg); var sc = mx.mValueA / rtmx.mValueA; alert(sc*100);
選択した画像の縮尺を計算します。(^-^)/
[AI]アフィン変換の活用[AI]
アフィン変換の活用Illustratorはいくつかのオブジェクトがmatrixプロパティを持ちます。そして、appクラスには各種matrix操作メソッドがあり、それを利用することによって色々と出来ることがあります。
上の画像のようにinverseMatrixを利用して回転角・縮尺をリセットするような操作が可能です。もっと単純に処理できるのはテキストオブジェクトでスケール等の情報が全て級数や長平体に移行されるためmatrixが回転角のみとなります。その為matrixの一部の数値からasinを利用して回転角を計算することが可能です。
var m = app.selection[0].matrix; alert(-Math.asin(m.mValueC)/Math.PI*180);
メソッドが返すのはラジアンですから上の様にdgreeに変換する必要があります。とまあ、こんな感じで上手く使うと非常に便利なアフィン変換のマトリクスですが、なんだかなぁ〜って思っている方に以下のブツをおすすめします。
var $_affine={ var $_affine={ win:function(){ var w = new Window ('dialog', "affine matrix", undefined); var p1 = w.add('panel',undefined,"a"); p1.size = [100,45]; var tx1 = p1.add('edittext',undefined,'1',{multiline:false}); tx1.characters = 5; var p2 = w.add('panel',undefined,"b"); p2.size = [100,45]; var tx2 = p2.add('edittext',undefined,'0',{multiline:false}); tx2.characters = 5; var p3 = w.add('panel',undefined,"c"); p3.size = [100,45]; var tx3 = p3.add('edittext',undefined,'0',{multiline:false}); tx3.characters = 5; var p4 = w.add('panel',undefined,"d"); p4.size = [100,45]; var tx4 = p4.add('edittext',undefined,'1',{multiline:false}); tx4.characters = 5; var cl = w.add('button', undefined, 'cancel', {name:'cancel'}); var bt = w.add('button', undefined , 'apply', {name:'ok'}); bt.onClick = function (){ $_affine.applyTransform(tx1.text,tx2.text,tx3.text,tx4.text); } w.show(); }, applyTransform:function(a,b,c,d){ var tm = new Matrix(); tm.mValueA = Number(a); tm.mValueB = Number(b); tm.mValueC = Number(c); tm.mValueD = Number(d); tm.mValueTX = 0; tm.mValueTY = 0; //alert(tm.mValueA+tm.mValueB+tm.mValueC+tm.mValueD); app.selection[0].transform(tm,true,true,true,true,1); app.redraw(); } } $_affine.win();
ScriptUIで各パラメータを入力して選択したオブジェクトを回したり拡大したりと試せるようになっています。一度使ってみてください。
[AI]消費税を8→10%に変更するスクリプト
さて、皆様におかれましてはご清祥の事とお慶び申し上げます。中には本年中のお仕事も納まってしまって年越しの準備を進められている方も多いかと存じます。
皆様はどんな一年だったでしょうか?良かった人も散々だった人もいらっしゃることとは思いますが、良かった人はそれなりに、悪かった人もそれなりに適当に新年を迎えればよろしいかと思いますです。
そんなこんなで、わたしも来年の準備をやってみました。来年は消費税の増税があります。恐らく既存データの流用等がたくさんあるはずで、ある日を境に全て数字を変更しなければならない様な羽目になるわけですが、それを少しだけ楽にします。