Photoshop + JSX と Bridge で複数の画像にファイル名の透かしを入れる

撮影したデータを LINE のアルバムで共有して OK 出しをする際、一度 LINE に上げた画像はファイル名が変更されてしまい後で元画像を探すのが大変なので、画像にファイル名をプリントしてしまう。

以下の JSX ファイルを用意し、Adobe Photoshop のアクションにこのスクリプトを実行するだけのアクションを設定する。ここではアクション名を「PrintFileName」とする。

//単位をピクセルに
preferences.rulerUnits = Units.PIXELS;

//ファイル名を取得して拡張子を除去
doc = documents[0];
dn = doc.name;
dn = dn.match(/(.*)(?:\.([^.]+$))/)[1];

//テキストレイヤーを追加してサイズと色と透明度を設定
layers = doc.artLayers;
layer = layers.add();
layer.kind = LayerKind.TEXT;
layer.textItem.contents = dn;
layer.textItem.size = 16;
layer.textItem.justification = Justification.LEFT;
layer.textItem.color.rgb.red = 0;
layer.textItem.color.rgb.green = 0;
layer.textItem.color.rgb.blue = 0;
layer.opacity = 25;

//テキストレイヤーの位置を左上から10pxに移動
layer.translate( -(parseInt(layer.bounds[0]))+10, -(parseInt(layer.bounds[1]))+10 );

Adobe Bridge で処理する画像を選択し、
ツール>Photoshop>イメージプロセッサー…
を選択。
イメージプロセッサーウィンドウの「④環境設定」で「アクションを実行」にチェックし「PrintFileName」アクションを選択して「実行」。