Fireworksのテクスチャー画像等をPhotoshopのパターンに一括登録したい。

  • このエントリーをはてなブックマークに追加
  • LINEで送る

[追記 / 20100523]
バッチ処理を使わないように改造したのを公開した。
大量のテクスチャー画像を、超簡単にパターン登録する.jsx ( バッチ処理不使用

photoshopで使っているパターン(テクスチャー)は、使いたい時に使いたい物を自作して即登録しているので今まで気にもしませんでしたが、
例えばCOLOURlovers :: パターンFtg – Fireworks texture galleryのような素敵サイトから感謝の念をこめてダウンロードしたpng形式のテクスチャー画像を「これちょっとphotoshopでも使いたいのぅ」なんて思ったら
1ファイル1ファイルphotoshopで開いて[編集] – [パターンを定義]しなきゃ駄目なんですね。
プリセットマネージャーへドラッグアンドドロップすれば登録できるんだと思ってた。

1個2個ならいいけど300回繰り返すとなるとなると半端なく面倒臭い。
面倒臭いとモチベーションダウンに繋がるしで良くない。
ほいではどうしたら面倒臭くなくなるか?を考えるわけです。醍醐味です。

バッチ処理とアクションで自動化

バッチ処理という機能を使えばフォルダ単位でアクションを自動化させられるそうだ、これは使わない手はない。

まずパターン登録のアクションを作成
アクション登録

次にバッチ処理に登録
[ファイル] – [自動処理] – [バッチ]
バッチ

プリセットマネージャーから確認すると全部登録されてた。
バッチ処理すごい!

しかし問題がひとつ。
パターン名がすべて「check02.png」になってた。
なんてこったい、アクションでパターンを登録する時に使った名前に上書きされていくという。
パターン名を空白にするとアクションに登録できないし困った。
気にしなければいんだけど、気になるのがおとめ座B型の性分か。

アクションでファイル名を参照させる方法もあるのかもしれないけど、全然わからなかったので別の方法を考えてみる事にする。

スクリプトってやつを使ったらどうだろう?

バッチ処理を検索すると、アクションとセットで登場するスクリプトというのがある。
これでどうにかならんかね?と調べてみた結果が前回のエントリーなわけです。

ScriptingListenerJS.logが吐き出すソースをパク参考に以下の.jsxを作成

[js]
// ==========
// 登録する
// ==========
var idMk = charIDToTypeID( "Mk " );
var desc1 = new ActionDescriptor();
var idNull = charIDToTypeID( "null" );
var ref1 = new ActionReference();
var myPtrn = charIDToTypeID( "Ptrn" );
ref1.putClass( myPtrn );
desc1.putReference( idNull, ref1 );
var idUsng = charIDToTypeID( "Usng" );
var ref2 = new ActionReference();
var idPrpr = charIDToTypeID( "Prpr" );
var idFsel = charIDToTypeID( "fsel" );
ref2.putProperty( idPrpr, idFsel );
var idDcmn = charIDToTypeID( "Dcmn" );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref2.putEnumerated( idDcmn, idOrdn, idTrgt );
desc1.putReference( idUsng, ref2 );
var idNm = charIDToTypeID( "Nm " );
var docName = app.activeDocument.name;
desc1.putString( idNm, docName );
executeAction( idMk, desc1, DialogModes.NO );

// ==========
// 閉じる
// ==========
var idCls = charIDToTypeID( "Cls " );
executeAction( idCls, undefined, DialogModes.NO );
[/js]

どうもバッチから直接.jsxを呼べないようなので
それをアクションに登録
閉じる処理はjsxの中に記述。

本当はjsxにバッチ側が受け持つ「指定フォルダにファイルがあったら開く」処理を書ければいいのだろうけど、まだわからないので仕方がない。

実行結果

パターン名がファイル名になった。

ご自由にどうぞ

add-Pattern.jsx|画像をファイル名でパターンに追加する.jsx

  • このエントリーをはてなブックマークに追加
  • LINEで送る

SNSでもご購読できます。

コメント

  1. 通りすがり より:

コメントを残す


You can add images to your comment by clicking here.