レイヤー名別にリサイズする

■プログラム説明(ソースコード説明)
 レイヤーを名前に応じて拡大縮小するにはレイヤーオブジェクトのnameプロパティを調べ該当する名前の場合に拡大縮小処理を行います。拡大縮小するにはresize()を使います。横と縦のスケール(拡大縮小率)と、基準位置を指定します。

■ソースコード
docObj = activeDocument;
for (i=0; i<docObj.layers.length; i++)
{
layObj = docObj.layers[i].bounds;
x1 = parseFloat(layObj[0]);
y1 = parseFloat(layObj[1]);
x2 = parseFloat(layObj[2]);
y2 = parseFloat(layObj[3]);
w = (x2 - x1);
h = (y2 - y1);
if ((w >0) && (h > 0) && (docObj.layers[i].isBackgroundLayer == false))
{
if (docObj.layers[i].name == "web")
{
n = 80; // 80%
docObj.layers[i].resize(n, n, AnchorPosition.MIDDLECENTER);
}else{
n = 50; // 50%
docObj.layers[i].resize(n, n, AnchorPosition.MIDDLECENTER);
}
}
}

■ポイント
 以下のようにするとwebという文字列が含まれる場合に80%縮小されます。

if (docObj.layers[i].name == "web")
      ↓
if (docObj.layers[i].name.indexOf("web") > -1)

 レイヤーの種類がテキストの場合に80%縮小させるには以下のようにkindでレイヤーの種類を調べます。

if (docObj.layers[i].name == "web")
      ↓
if (docObj.layers[i].kind == LayerKind.TEXT)

 resize()の書式は以下のようになります。

レイヤーオブジェクト.resize(横のスケール, 縦のスケール, 基準位置)

AnchorPosition.BOTTOMCENTER 下中央
AnchorPosition.BOTTOMLEFT 下左
AnchorPosition.BOTTOMRIGHT 下右
AnchorPosition.MIDDLECENTER 中央
AnchorPosition.MIDDLELEFT 中左
AnchorPosition.MIDDLERIGHT 中右
AnchorPosition.TOPCENTER 上中央
AnchorPosition.TOPLEFT 上左
AnchorPosition.TOPRIGHT 上右

■実際のスクリプトをダウンロード(sample.js.zip)