クリエイター手抜きプロジェクト[136]Photoshop CS/CS2/CS3編 選択されたレイヤーに枠を付ける・マットを表示する/古籏一浩

投稿:  著者:  読了時間:7分(本文:約3,100文字)


Photoshop CS/CS2で、選択されたレイヤーに枠を付けるスクリプトです。
Photoshop CS2では複数のレイヤーを選択できますが、選択されたレイヤーのうちひとつだけが対象になります。


saveUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
offsetX1 = -0; // 左のオフセット(単位はピクセル)
offsetY1 = 0; // 上のオフセット(単位はピクセル)
offsetX2 = 0; // 右のオフセット(単位はピクセル)
offsetY2 = 0; // 下のオフセット(単位はピクセル)
RGBColor = new SolidColor();
RGBColor.red = 255;
RGBColor.green = 0;
RGBColor.blue = 0;
layObj = activeDocument.activeLayer;
x1 = parseInt(layObj.bounds[0]);
y1 = parseInt(layObj.bounds[1]);
x2 = parseInt(layObj.bounds[2]);
y2 = parseInt(layObj.bounds[3]);
newLayerObj = activeDocument.artLayers.add();
// 上
selReg = [[x1+offsetX1,y1+offsetY1],[x2+offsetX2,y1+offsetY1],[x2+offsetX2,y1+offsetY1+1],[x1+offsetX1,y1+offsetY1+1]];
activeDocument.selection.select(selReg);
activeDocument.selection.fill(RGBColor,ColorBlendMode.NORMAL, 100, false);
// 下
selReg = [[x1+offsetX1,y2+offsetY2],[x2+offsetX2,y2+offsetY2],[x2+offsetX2,y2+offsetY2-1],[x1+offsetX1,y2+offsetY2-1]];
activeDocument.selection.select(selReg);
activeDocument.selection.fill(RGBColor,ColorBlendMode.NORMAL, 100, false);
// 左
selReg = [[x1+offsetX1,y1+offsetY1],[x1+offsetX1+1,y1+offsetY1],[x1+offsetX1+1,y2+offsetY2],[x1+offsetX1,y2+offsetY2]];
activeDocument.selection.select(selReg);
activeDocument.selection.fill(RGBColor,ColorBlendMode.NORMAL, 100, false);
// 右
selReg = [[x2+offsetX2,y1+offsetY1],[x2+offsetX2-1,y1+offsetY1],[x2+offsetX2-1,y2+offsetY2],[x2+offsetX2,y2+offsetY2]];
activeDocument.selection.select(selReg);
activeDocument.selection.fill(RGBColor,ColorBlendMode.NORMAL, 100, false);
// 選択解除
activeDocument.selection.deselect();
newLayerObj.move(layObj, ElementPlacement.PLACEAFTER);

枠の色は以下の3行で指定します。

RGBColor.red = 255;
RGBColor.green = 0;
RGBColor.blue = 0;

値は0〜255で赤緑青の輝度を示しています。枠のずれ(オフセット)を指定する場合には以下の4行の値を変更します。

offsetX1 = -0; // 左のオフセット(単位はピクセル)
offsetY1 = 0; // 上のオフセット(単位はピクセル)
offsetX2 = 0; // 右のオフセット(単位はピクセル)
offsetY2 = 0; // 下のオフセット(単位はピクセル)

枠線ではなくTVの字幕の下に表示されるマットのようにしたい場合には以下のスクリプトを使用します。

saveUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
offsetX1 = -0; // 左のオフセット(単位はピクセル)
offsetY1 = 0; // 上のオフセット(単位はピクセル)
offsetX2 = 0; // 右のオフセット(単位はピクセル)
offsetY2 = 0; // 下のオフセット(単位はピクセル)
RGBColor = new SolidColor();
RGBColor.red = 255;
RGBColor.green = 0;
RGBColor.blue = 0;
layObj = activeDocument.activeLayer;
x1 = parseInt(layObj.bounds[0]);
y1 = parseInt(layObj.bounds[1]);
x2 = parseInt(layObj.bounds[2]);
y2 = parseInt(layObj.bounds[3]);
newLayerObj = activeDocument.artLayers.add();
selReg = [[x1+offsetX1,y1+offsetY1],[x2+offsetX2,y1+offsetY1],[x2+offsetX2,y2+offsetY2],[x1+offsetX1,y2+offsetY2]];
activeDocument.selection.select(selReg);
activeDocument.selection.fill(RGBColor,ColorBlendMode.NORMAL, 100, false);
activeDocument.selection.deselect();
newLayerObj.move(layObj, ElementPlacement.PLACEAFTER);


【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/ >
Dreamweaver CS3のページを作成しました。Adobe Spryのサンプルも少し用意してあります。
< http://www.openspc2.org/reibun/DreamweaverCS3/ >
毎コミジャーナルで、Ajax/JavaScriptだけでなく自動化に関する記事も書いてます。
< http://www.openspc2.org/JavaScript/Ajax/mycom/index.html >

photo
ActionScript逆引きクイックリファレンス―5&MX&MX2004&8対応 for Windows & Macintosh
田中 康博 古籏 一浩 林 拓也
毎日コミュニケーションズ 2005-12
売り上げランキング : 20239

Flash逆引きクイックリファレンス 8&MX2004対応for Windows & Macintosh FLASH ActionScript 2.0入門完全ガイド+実践サンプル集 [CD-ROM付] Flash Hacks―プロが教えるテクニック&ツール100選 Flash ActionScript Handbook 4th edition 速習Webテクニック FLASH8 ActionScript 実例サンプル47



photo
改訂第4版 JavaScript ポケットリファレンス
古籏 一浩
技術評論社 2006-10-18
おすすめ平均 star
starJavaScript仮免者以上の方へ
starバランスの良いバイブル
star中級者向けです。

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂新版 SQLポケットリファレンス (Pocket reference) 標準DOMスクリプティング JavaScript+DOMによるWebアプリデザインの基礎 基礎 Ajax + JavaScript まるごとJavaScript & Ajax ! Vol.1



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

まるごとJavaScript & Ajax ! Vol.1 WEB+DB PRESS 総集編 [Vol.1~36] JavaScriptクイックリファレンス 第5版―JavaScript1.5対応 標準DOMスクリプティング JavaScript+DOMによるWebアプリデザインの基礎

by G-Tools , 2007/07/23