クリエイター手抜きプロジェクト[104]Photoshop CS/CS2編 画像の右下にファイル名/ファイルパスを表示する
── 古籏一浩 ──

投稿:  著者:


Webクリエイティブのためのプログラミングマガジン Source &Script今回は、ファイル名を画像の右下に表示するスクリプトです。このスクリプトは、PSDファイルを開いてファイル名を画像の右下に表示しPSDファイルとして保存します。元のPSDファイルは書き換えられるので、不安ならば元のデータをコピーしておいてください。


preferences.rulerUnits = Units.PIXELS;
colObj = new SolidColor();
colObj.rgb.red = 0; // 赤の輝度
colObj.rgb.green = 0; // 緑の輝度
colObj.rgb.blue = 128; // 青の輝度
offsetX = 20; // 右側からの位置(20 pixel)
offsetY = 10; // 下側からの位置(10 pixel)
fontName = "HiraMaruPro-W4"; // ヒラギノ丸ゴ Pro W4
textAlign = Justification.RIGHT; // 右揃え
fontSize = 16;

psdFolderObj = Folder.selectDialog("PSDファイルがあるフォルダを選択してください");
if (psdFolderObj)
{
psdFileList = psdFolderObj.getFiles("*.psd");
for (i=0; i< psdFileList.length; i++) {
open(new File(psdFileList[i]));
txt = psdFileList[i].name;
docObj = activeDocument;
w = docObj.width.value;
h = docObj.height.value;
layObj = docObj.artLayers.add();
layObj.kind = LayerKind.TEXT;
layObj.textItem.contents = txt;
layObj.textItem.font = fontName;
layObj.textItem.size = fontSize;
layObj.textItem.justification = textAlign;
layObj.textItem.color = colObj;
x2 = parseFloat(layObj.bounds[2]);
y2 = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetX-x2, h-offsetY-y2);
activeDocument.close(SaveOptions.SAVECHANGES);
}
}

ファイル名でなくファイルパスを入れたい場合には

txt = psdFileList[i].name;

txt = psdFileList[i].fsName;

に変更します。また、表示位置を変更するには以下の2行の値を設定します。

offsetX = 20; // 右側からの位置(20 pixel)
offsetY = 10; // 下側からの位置(10 pixel)

サンプルではピクセル単位になっていますが、35mmなどミリメートルで指定したい場合には最初の行の

preferences.rulerUnits = Units.PIXELS;

preferences.rulerUnits = Units.MM;

にします。これで右から30mm、下から2.6mmの位置に表示する、といったことが可能になります。

【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
メールいただいて、こういう需要もあるのだなあ、と。InDesignではページ上に画像カタログを生成するというのは割とあったりするのですが。
毎日コミュニケーションズから「source&script」が出ます。最後の方のAPI部分書いてますので、こちらもよろしく。


photo
改訂第4版 JavaScript ポケットリファレンス
古籏 一浩
技術評論社 2006-10-18


photo
改訂新版 JavaScript 例文活用辞典
古籏 一浩
技術評論社 2006-10-20

by G-Tools , 2006/10/16