« ■ブックガイド&プレゼント/「イラストレーター303人のキャラクターファイル」〜CHARACTER FILE 06-07 | index | ■KNNエンパワーメントコラム「テレビCM崩壊」後の「CG-CM」/神田敏晶 »

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

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

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

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

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

━━━━━━━━━━━━━━━━━━━━━━━━━━━ TOKUPRE PR ━
チラシ印刷ポスター印刷新聞折込チラシカタログ印刷冊子印刷
ポストカード印刷巻き三つ折り観音折りなどに対応した印刷サービス
印刷会社はこちらから↓↓↓ 選挙ポスター印刷もあります。
http://www.ddc.co.jp/index.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━ TOKUPRE PR ━

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

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

トラックバック

このエントリーのトラックバックURL:

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

back number

categories

          
Apple Store(Japan)
Apple Store(Japan)
XML FEED