Photoshop
今更の処理スピード js
昔、ジャバスクリプトでの処理スピードが、記述の仕方でどの位違うのか、測ってみた事がある。
その時は、配列の最後に値を追加するテストだった。
array[ count++ ] = value;
array[ array.length ] = value;
array.push( value );
の3種類での比較で、カウントを取っている 1 番目が一番速かった。
今回の実験は
//test-1 for ( var i = 0; i < count; i++ ){ var s = obj.textRanges[ 0 ].characterAttributes.size; } と //test-2 var ca = obj.textRanges[ 0 ].characterAttributes; for ( var i = 0; i < count; i++ ){ var s = ca.size; }
なんとこれで 2.5 倍の違いが出る。(書き込みでは僅差だがやはりtest-2)
考えてみれば当たり前か。
test-1 では、文字サイズに行き着くまで、オブジェクト>テキストレンジの何番>アトリビュート と3 段階の手間が掛かっているが、test-2 の cs がアトリビュートを指しているので、サイズまで速い訳だ。
ループ内では、目的地に近いオブジェクトを示す参照オブジェクトを用意しよう。
Px_PanelEX.js
って事は、Px_Panels は、もう古いって事ですか。。
少々(大分)煩雑で厄介な部分を改良した Px_PanelEX
は、あの Px_Panels の改良版って事の様です。一応 Px_Panels.js は残しておきますが、今後は申し訳ありませんが Px_PanelEX.js へ。
Px_Panels.js 更新
少々更新しました。
Px_Panels.js
スクリプト制作初心者向けカンタンUIパネル構築スクリプトです。
まだ完成品ではありません。機能拡張途中ですが。。。
使い方など Px_Panels
ページ を作りましたので宜しければどうぞ。
また、更新したスクリプトもそちらへアップしますので、スクリプト利用者もその時には既存の物と入れ替えてください。
プロパティと値
右往左往してる。
UI のスクリプトを作っているが、コントロールのプロパティなど、マニュアルだけでは分かりづらいし、設定した値はどこに入って行くのか、とか。
そう言えば、古簱さんの所で以前見た事あるなぁと思い![]()
AI でもちゃんと書き出してくれます。これは便利。
ちょっと改造させて頂いて、オブジェクトを渡すかたちにして重宝しています。
function prop( obj )
{
var CR = String.fromCharCode(13);
var result = "";
for ( var i in obj) {
try { result = result + i+" = "+obj[ i ] + CR; }
catch( e ){ result = result + CR; }
}
var pageObj = app.activeDocument;
var txtObj = pageObj.textFrames.add();
txtObj.visibleBounds = [ 0, 0, 100, 100 ];
txtObj.contents = result;
}
いんちきノンモーダル
スクリプトではコマンドを発行し実行させて終わります。
私が初めてスクリプトを書き始めたのがLW3Dでしたが、スクリプトではコマンドを発行し(パネルで数値などを設定してOKを押す)それに従い一度だけ処理を行いスクリプトを終了ます。このパネルはモーダルパネルと言われています。
時が過ぎ、そのスクリプトのパネル処理にコールバック関数が付加されました。パネルのボタンを押すとコールバック関数を呼ぶことができ、その関数内で処理を行う。または数値設定を変更するとコールバック関数が呼ばれる仕組み。コールバックでは設定値を読み、それに従いモデルの移動や変形をさせパネルに戻って来れるので、パネルは生きたままで設定値に従い結果を確認しながら変更できます。真のノンモーダルパネルではなく「インチキノンモーダル」と呼んで、あたかもツールライクに扱える事を楽しんでいました。
AI や ID のジャバスクリプトでも UI 処理ができ、コールバックを受けることができる仕組みがあります。
これは、設定パネルで変更する値をコールバックで受け取り、即座にジオメトリなどに反映させてみせる事も可能です。事実「OK」ボタンのコールバックで設定値を確保しパネルを破棄する処理を行っているでしょう。
スライダーや数値設定(テキスト編集ボックスかな)で、イベントを受け取りコールバック関数を呼ぶ。
パネル設定だけの関数ではなく、実質的な処理を即座に実行しジオメトリに反映させウインドウに表示させる。
これは、スクリプトを使用するユーザーに変更点を即座に見せながら実行させることができ、スクリプトのやり直しを減らす事にもなる訳です。また、動かして見ていても楽しいです。
しかし、コントロールパネルは ExtendScript Toolkit の User Interface Tools でチマチマ構築しないといけないのですが。。。
PS resetPixelAspect.js
画像原稿で希に「ピクセル縦横比」が正方形(1.0)でない物が入って来る。
原稿を出す方としては、ピクセル縦横比を変更している物が正常としているだろう。
そう「ピクセル縦横比プレビュー」で見たままの画像だ。
これを AI や ID でレイアウトすると、この縦横比変形状態は解除され、正方形ピクセルとして配置されてしまう様だ。
これではマズい。
AI や ID からこのピクセル縦横比を読めればいいがそうも行かない様だ。
グレースケールの色づけ
取引先からレイアウトデータをくれ、と言うので私のイラストレータCS3データを相手用CS2に落とし画像ファイルと共に渡した。
色が着いていなくグレースケールになっていると言う。
Category
Tag
Comment
- 入稿準備画像調整プロジェクト AI バージョン に PICTRIX より
- 入稿準備画像調整プロジェクト AI バージョン に PAVO より
- kinちゃん効果恐るべし に PICTRIX より
- kinちゃん効果恐るべし に (z-) より
- kinちゃん効果恐るべし に PICTRIX より
- kinちゃん効果恐るべし に ( z-) より
- kinちゃん効果恐るべし に PICTRIX より
- kinちゃん効果恐るべし に ( z-) より
- kinちゃん効果恐るべし に PICTRIX より
- kinちゃん効果恐るべし に kin より




