クリエイター手抜きプロジェクト[102]Photoshop CS/CS2編 PSDファイルにEPSファイルを配置する/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,600文字)


今回は、EPSファイルをPSDファイルに配置するスクリプトです。Illustratorなどで作成したロゴデータを、PSDファイル上の特定の位置に表示させる場合に便利です。今回の処理は、スクリプトでなくアクションでも、ドキュメントサイズが同じ場合は同様の処理が可能です。

使い方ですが、あらかじめ配置するEPSデータを用意しておきます。次に以下のスクリプトで

offsetX = 40; // 左からの位置
offsetY = 20; // 上からの位置

の値を指定し表示位置を設定します。単位はピクセルにしていますが、最初の行のUnits.PIXELSをUnits.MMにすればミリメートル単位での指定もできます。


PSDファイルは保存され内容が書き換えられてしまうので、安全のため複製を作っておきましょう。

また、MacOS X版のPhotoshop CSではフォルダ名またはファイル名に日本語が含まれると正しく処理されない可能性があります(Photoshop CS2では問題ありません)。

preferences.rulerUnits = Units.PIXELS;offsetX = 40; // 左からの位置
offsetY = 20; // 上からの位置
epsOpt = new EPSOpenOptions();
epsOpt.antiAlias = true;
epsOpt.constrainProportions = false;
epsOpt.width = 256;
epsOpt.height = 192;
epsOpt.mode = OpenDocumentMode.RGB;
epsOpt.resolution = 72;

epsName = File.openDialog("EPSファイルを選択してください");
if (epsName) {
open(new File(epsName), epsOpt);
activeDocument.selection.selectAll();
activeDocument.selection.copy(true);
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
psdFolderObj = Folder.selectDialog("PSDファイルがあるフォルダを選
択してください");
if (psdFolderObj) {
psdFileList = psdFolderObj.getFiles("*.psd");
for (i=0; i< psdFileList.length; i++) {
open(new File(psdFileList[i]));
activeDocument.paste();
layObj = activeDocument.activeLayer;
x = parseFloat(layObj.bounds[0]);
y = parseFloat(layObj.bounds[1]);
layObj.translate(offsetX-x, offsetY-y);
activeDocument.close(SaveOptions.SAVECHANGES);
}
}
}

上記のサンプルは、左上からの位置を基準にしていますが、ロゴなどを右下を基準にして配置したい場合もあります。その場合は以下のスクリプトを利用してみてください。

preferences.rulerUnits = Units.PIXELS;offsetX = 40; // 左からの位置
offsetY = 20; // 上からの位置
epsOpt = new EPSOpenOptions();
epsOpt.antiAlias = true;
epsOpt.constrainProportions = false;
epsOpt.width = 256;
epsOpt.height = 192;
epsOpt.mode = OpenDocumentMode.RGB;
epsOpt.resolution = 72;

epsName = File.openDialog("EPSファイルを選択してください");
if (epsName) {
open(new File(epsName), epsOpt);
activeDocument.selection.selectAll();
activeDocument.selection.copy(true);
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
psdFolderObj = Folder.selectDialog("PSDファイルがあるフォルダを選
択してください");
if (psdFolderObj) {
psdFileList = psdFolderObj.getFiles("*.psd");
for (i=0; i< psdFileList.length; i++) {
open(new File(psdFileList[i]));
w = activeDocument.width.value; // ドキュメントの横幅
h = activeDocument.height.value; // ドキュメントの縦幅
activeDocument.paste();
layObj = activeDocument.activeLayer;
x = parseFloat(layObj.bounds[2]);
y = parseFloat(layObj.bounds[3]);
layObj.translate(w-offsetX-x, h-offsetY-y);
activeDocument.close(SaveOptions.SAVECHANGES);
}
}
}

【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/ >
今週の27日に「逆引きGoogle Maps API」が出ますので、こちらもよろしく。
それから、JavaScriptリファレンスの新しいバージョンも作成中。
< http://www.openspc2.org/JavaScript/reference4/index.html >

photo
Ajax逆引きクイックリファレンスWeb2.0対応for Windows & Macintosh
古籏 一浩
毎日コミュニケーションズ 2006-03
おすすめ平均 star
star入門は不要な人向け
star知ってる人は使いやすい
starサンプル多いのが良い
starJavaScript初心者にはちょっとわかりづらい

Ajaxイン・アクション Ajax 実装のための基礎テクニック 入門 Ajax AJAX Webアプリケーション アイデアブック Googleマップ+Ajaxで自分の地図をつくる本  Google Maps API徹底活用

by G-Tools , 2006/09/25