クリエイター手抜きプロジェクト[135]Photoshop CS2編 選択されたレイヤーの座標値を表示する
── 古籏一浩 ──

投稿:  著者:


前回と同様に、今度はPhotoshop CS2で選択したレイヤーの座標値を、テキストレイヤーとして生成するスクリプトです。Photoshop CS2では複数のレイヤーを選択できますが、今回のスクリプトはひとつだけ選択してください。複数選択には対応していないためです。以下のスクリプトは、選択したレイヤーの右下の座標値を表示するものです。


saveUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
offsetX2 = 0; // 横のオフセット(単位はピクセル)
offsetY2 = 0; // 縦のオフセット(単位はピクセル)
layObj = activeDocument.activeLayer;
x1 = parseInt(layObj.bounds[0]);
y1 = parseInt(layObj.bounds[1]);
x2 = parseInt(layObj.bounds[2]);
y2 = parseInt(layObj.bounds[3]);
textObj = activeDocument.artLayers.add();
textObj.kind = LayerKind.TEXT;
textObj.textItem.contents = "(" + x2 + ", " + y2 +")";
textObj.textItem.justification = Justification.LEFT;
tx1 = parseInt(textObj.bounds[0]);
ty1 = parseInt(textObj.bounds[1]);
tx2 = parseInt(textObj.bounds[2]);
ty2 = parseInt(textObj.bounds[3]);
textObj.translate(x2-tx1 + offsetX2, y2-ty1 + offsetY2);
preferences.rulerUnits = saveUnit;


座標値の表示位置の調整は以下の2行の数値を変更してください。

offsetX2 = 0; // 横のオフセット(単位はピクセル)
offsetY2 = 0; // 縦のオフセット(単位はピクセル)

Photoshopの場合はIllustratorと異なりピクセル以外の単位も指定することができます。この単位を設定しているのが以下の行です。

preferences.rulerUnits = Units.PIXELS;

サンプルではピクセルを指定していますが、センチメートルやミリメートル、パイカやポイントなど以下のものが指定できます。

Units.CM
Units.INCHES
Units.MM
Units.PERCENT
Units.PICAS
Units.PIXELS
Units.POINTS

右下だけでなく左上の座標値も表示させたい場合には以下のスクリプトを使います。表示位置のずれ具合などは2〜6行目までのオフセット値を変更してください。


saveUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
offsetX1 = 0; // 左上の座標値の横のオフセット(単位はピクセル)
offsetY1 = 0; // 左上の座標値の縦のオフセット(単位はピクセル)
offsetX2 = 0; // 右下の座標値の横のオフセット(単位はピクセル)
offsetY2 = 0; // 右下の座標値の縦のオフセット(単位はピクセル)
layObj = activeDocument.activeLayer;
x1 = parseInt(layObj.bounds[0]);
y1 = parseInt(layObj.bounds[1]);
x2 = parseInt(layObj.bounds[2]);
y2 = parseInt(layObj.bounds[3]);
textObj = activeDocument.artLayers.add();
textObj.kind = LayerKind.TEXT;
textObj.textItem.contents = "(" + x2 + ", " + y2 +")";
textObj.textItem.justification = Justification.LEFT;
tx1 = parseInt(textObj.bounds[0]);
ty1 = parseInt(textObj.bounds[1]);
tx2 = parseInt(textObj.bounds[2]);
ty2 = parseInt(textObj.bounds[3]);
textObj.translate(x2-tx1 + offsetX2, y2-ty1 + offsetY2);
textObj = activeDocument.artLayers.add();
textObj.kind = LayerKind.TEXT;
textObj.textItem.contents = "(" + x1 + ", " + y1 +")";
textObj.textItem.justification = Justification.RIGHT;
tx1 = parseInt(textObj.bounds[0]);
ty1 = parseInt(textObj.bounds[1]);
tx2 = parseInt(textObj.bounds[2]);
ty2 = parseInt(textObj.bounds[3]);
textObj.translate(x1-tx2 + offsetX1, y1-ty2 + offsetY1);
preferences.rulerUnits = saveUnit;


【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>

Illustrator CS3のページを作ってみました。だんだんと長くなる・・・
< http://www.openspc2.org/reibun/IllustratorCS3/
>


photo
Google Maps API逆引きクイックリファレンス―WEB2.0対応
古籏 一浩
毎日コミュニケーションズ 2006-09
おすすめ平均 star
starようやく出ました。使えるGoogleMapsリファレンス。

Google Maps API徹底活用ガイド Google Maps Hacks -地図検索サービス徹底活用テクニック- Google Maps APIv2活用リファレンス PHP×WebサービスAPIコネクションズ Googleマップ+Ajaxで自分の地図をつくる本  Google Maps API徹底活用



photo
Ajaxライブラリリファレンス
古籏 一浩
ビー・エヌ・エヌ新社 2007-01
おすすめ平均 star
starまずはAjaxを使ってみたい

まるごとJavaScript & Ajax ! Vol.1 標準DOMスクリプティング JavaScript+DOMによるWebアプリデザインの基礎 Ajaxテクニックブック Ajaxハッカーズ・プログラミング―基礎からprototype.js、Yahoo!UIライブラリ、HTML_AJAXの活用までWebアプリケーション制作のプログラミング・テクニック DHTML & AJAX アイデア見本帖 ワンランク上のWebインターフェイスを実現する



photo
JavaScriptテクニックブック―すぐに使える
古籏 一浩
シーアンドアール研究所 2007-04

まるごとJavaScript & Ajax ! Vol.1 WEB+DB PRESS 総集編 [Vol.1~36] JavaScriptクイックリファレンス 第5版―JavaScript1.5対応

by G-Tools , 2007/07/09