[CEP] JSXファイルの動的読み込み

CEPエクステンションのデバッグにはCEF Clientを利用すると便利だという話は以前書きました。(https://forums.adobe.com/community/international_forums/japanese/automation/blog/2018/01/25/cefclientによるエクステンションのリモートデバッグ
このクライアントを利用すればCEP側のJavaScriptは実際にアプリケーション上で動作させ、適宜修正を加えながら再読込し動作を確認することが出来ます。しかし、この再読込出来るのはCEP側だけです。ExtendScript側は再読込することが出来ません。
日頃「アプリケーション側のロジックはエクステンションに組み込む前にESTK等を利用して完全にデバッグを済ませておく」という趣旨の事は口を酸っぱくして言い続けているわけで、わたしのブログをご覧になっている方々はきっと何度も目にしていることだと思います。しかしながら、ExtendScript側もデバッグ時に「あの部分をちょっとだけ変えてみたい…」といった事が少なからず起こってきます。そういった場合においても、いちいちアプリケーションから立ち上げ直すと言った作業を強いられながらデバッグを進めるというのも精神衛生上如何なものかとも思います。
今回はそういったケースでもExtendScript側のロジックを再読込出来る手法を解説します。

続きを読む

広告

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]世界一単純な図形交差検出関数

Illustratorに限らずオブジェクトの重なりの判断というのは2次元空間内における座標を取得して曲線ならバーンスタインがどうとかこうとか演算が必須となっております。おそらくみんな泣きながらやればある程度のものは出来るんじゃないかなぁって思うのです。

スクリーンショット 2018-07-11 12.36.08.png

 

しかしながら、一言申し添えると「面倒くさい」です。こんなん、手早く書き捨てたいと思うぐらいものなんですけどそうも行かないのが世の常なのです。で、今回はその圧倒的に面倒くさい部分を全てショートカットする仕組みを提供いたします。

続きを読む

ExtendScriptにおけるDRMの実装

今回は完全にExtendScriptをベースとするデベロッパー向けの内容になります。わたしたちデベロッパーも開発には環境整備から始まりコードを書く時間までそれ相応のコストを負担しています。例えばQR Code Makerでは開発の予備調査からリリースまで20ヶ月近く要し、延べ時間は200時間を余裕で超えるわけです。人月で計算するとわたしが個人で負担したコストは150万円超となります。これは極端な例ですが、ちょっとしたフリースクリプトを配布している方々も大なり小なりコストを負担しています。本来、ある程度の品質を担保する必要がある場合は当然の如く有料化を視野に入れなければならない事なのです。
そこで問題になるのがユーザー認証やコピープロテクション等のDRM関連の技術です。ExtendScriptでは元来こう言った物に対しては考えられてはいません。(jsxbinはコードの隠蔽には有効だがコピーに対しては保護とはならない)しかし、比較的手間のかからない手法で出来ることも幾つか存在します。
今回は基礎的な手法から高度な実装の概要までを紹介します。

続きを読む

YahooAPIを利用してルビを振るやつ

だいたい8年ぐらい前にやったネタなんですけど、未だに動きます。ここはYahooさんに感謝したいところです。
そんなに長いコードではありませんが、44行目だけ自分でYahooAIPに登録してふりがなAPIを利用するためのアプリケーションIDというのを取得して設定しなければならない仕様になっています。詳しくは以下をご参照ください。

https://developer.yahoo.co.jp/webapi/jlp/

ExtendScriptでのソケット通信のお手本みたいな構成になっていますので、そこら辺の事を重点的に見ていただくと勉強になるかもしれません。
もちろん、総ルビとかで息絶え絶えになりそうなときなんかに役に立ちます。コード自体は以下から取ってきてください。

https://github.com/ten-A/Extend_Script_experimentals/blob/master/group_ruby.jsx

繰り返しになりますが、YahooAPIのアプリケーションIDを書き換えないと動かないのでそこらへんの事にご注意ください。
ちなみに、わたし自身はこれで総ルビ振った後にMonoRubyエクステンションで手を加えていくようなワークフローで処理しています。(^-^)/

 

 

[PS] Scriptをプラグインのふりさせる

今年も野菜の季節が来ました。お庭ではトマトときゅうり、ゴーヤの苗の植え付けが完了しています。アスパラガスも絶好調で毎日食卓に上がるという状況です。ここ数日は雨や冷え込んだりですが、そろそろ害虫の対処を考えないといけないなあと思いつつ仕事をしている次第です。また、ここ2〜3年で急に大きくなった檸檬の木もいっぱい花をつけました。今年も100個以上の収穫になりそうです(どうする???)。という事でわたしからの報告は以上です。

……というわけにもいかないので続けます。以前からPhotoshopにはJavaScriptをプラグインとして登録する手があるのは知ってたのですが特に需要も無いので自身でどうこうする事はなかったのですけど、ちょっと調べ物のついでに検索かけてみたら、この辺について言及しているページが見当たらないと言うことで書きなぐっておこうと思います。

続きを読む

[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);

選択した画像の縮尺を計算します。(^-^)/