背景をレイヤーにする

 Photoshopのレイヤーパレットを見るとレイヤー以外に背景があります。この背景、場合によってはレイヤーにしたい場合があります。これは背景よりもレイヤーの方が制限が少ないためです。例えばレイヤーなら合成モードを指定できますが、背景では合成モードは指定できません。不透明度なども同様です。背景をレイヤーにするには背景を複製してレイヤーにしたりする作業が必要になります。アクションを使っても可能ですが、スクリプトだと簡単に終わります。というのも内部では背景もレイヤーとして扱われているためです。
 内部ではレイヤーとして扱われているので以下のスクリプトを実行すると背景がレイヤーに変わります。

layObj = activeDocument.artLayers;
layObj[layObj.length-1].opacity = 100;
layObj[layObj.length-1].name = "背景";

 背景に不透明度などを指定すると自動的にレイヤーに切り替わるのです。開かれているドキュメント全ての背景をレイヤーに変えるには以下のスクリプトになります。

docObj = app.documents;
for (i=0; i<docObj.length; i++)
{
app.activeDocument = docObj[i];
layObj = activeDocument.artLayers;
layObj[layObj.length-1].opacity = 100;
layObj[layObj.length-1].name = "背景";
}

 背景をレイヤーにすると名前が「レイヤー0」になるので「layObj[layObj.length-1].name = "背景";」として背景という名前に設定しています。特に背景という名前にしないならば、この行は不要なので削除してください。

 次はレイヤーモードを全部「通常」にするスクリプトです。レイヤーモードを元に戻したい場合には便利です。

layObj = activeDocument.artLayers;
for (i=0; i<layObj.length; i++)
{
if (!layObj[i].isBackgroundLayer)
{
layObj[i].blendMode = BlendMode.NORMAL;
}
}

 レイヤーモードは以下のものが指定できます。

BlendMode.COLORBLEND カラー
BlendMode.COLORBURN 焼き込みカラー
BlendMode.COLORDODGE 覆い焼きカラー
BlendMode.DARKEN 比較(暗)
BlendMode.DIFFERENCE 差の絶対値
BlendMode.DISSOLVE ディザ合成
BlendMode.EXCLUSION 除外
BlendMode.HARDLIGHT ハードライト
BlendMode.HUE 色相
BlendMode.LIGHTEN 比較(明)
BlendMode.LINEARBURN 焼き込み(リニア)
BlendMode.LINEARDODGE 覆い焼き(リニア)
BlendMode.LINEARLIGHT リニアライト
BlendMode.LUMINOSITY 輝度
BlendMode.MULTIPLY 乗算
BlendMode.NORMAL 通常
BlendMode.OVERLAY オーバーレイ
BlendMode.PASSTHROUGH
BlendMode.PINLIGHT ピンライト
BlendMode.SATURATION 彩度
BlendMode.SCREEN スクリーン
BlendMode.SOFTLIGHT ソフトライト
BlendMode.VIVIDLIGHT ビビッドライト

 最後に全てのレイヤーの不透明度を100%(元に戻す)にするスクリプトです。

layObj = activeDocument.artLayers;
for (i=0; i<layObj.length; i++)
{
if (!layObj[i].isBackgroundLayer)
{
layObj[i].opacity = 100;
}
}




[サンプルをダウンロード]