画像を16:9に切り抜き(背景を黒で塗りつぶし)

Photoshopで画像を16:9に切り抜き(比率に満たない場合背景を黒で塗りつぶし)するスクリプトです。
キャンバスサイズの変更を使用しています。

/*
http://nakatoji.lolipop.jp/index.php/extendscript/photoshop/ps-layer/428-2015-05-15-19-07-54
(レイヤー(レイヤーセット)の順番を移動する)
http://www.openspc2.org/book/PhotoshopCC2014/easy/layer/023/index.html
(背景をレイヤーにする)
https://pulogu.net/blog/020-computer/photoshop/photoshop-javascript-environmental-setting-ruler-unit-get-configuration/
(環境設定の定規の単位を取得・設定する)
http://www.openspc2.org/book/PhotoshopCC2014/easy/document/004/index.html
(ドキュメントの横幅、縦幅を調べる)
http://www.openspc2.org/book/PhotoshopCC2014/easy/canvas/001/index.html
(キャンバスサイズを変更する)
http://www.openspc2.org/book/PhotoshopCC2014/
(Adobe Photoshop CC 2014自動化作戦)
http://www.openspc2.org/book/PhotoshopCC2014/easy/layer/007/index.html
(レイヤーを作成する)
http://www.openspc2.org/book/PhotoshopCC2014/easy/selection/001/index.html
(全てを選択する)
http://www.openspc2.org/book/PhotoshopCC2014/easy/selection/010/index.html
(選択範囲を塗りつぶす)
http://www.openspc2.org/book/PhotoshopCC2014/easy/selection/003/index.html
(選択を解除する)
http://www.openspc2.org/book/PhotoshopCC2014/easy/document/010/index.html
(画像を統合する)
http://www.openspc2.org/book/PhotoshopCC2014/easy/layer/001/index.html
(レイヤー数を求める)
http://www.openspc2.org/book/PhotoshopCC2014/basic/020/index.html
(条件判断を行う)
*/

var default_rulerUnits = app.preferences.rulerUnits; //既定の定規単位を取得
preferences.rulerUnits = Units.PIXELS;
n = activeDocument.artLayers.length; // レイヤー数を求める

// レイヤー数が1の場合
if (n == 1){
// 背景をレイヤーにする
var docObj = activeDocument.artLayers;
docObj[docObj.length-1].opacity = 100;
//

var w = activeDocument.width.value;
var h = activeDocument.height.value;

var h2 = (9 * w) / 16

// キャンバスサイズを変更する。単位をpreferences.rulerUnitsに設定しておく必要がある
activeDocument.resizeCanvas(w,h2,AnchorPosition.MIDDLECENTER);

if (h < h2){
activeDocument.artLayers.add(); // レイヤーを作成する
// カラーオブエクトを作成
var RGBColor = new SolidColor();
RGBColor.red = 0;
RGBColor.green = 0;
RGBColor.blue = 0;
//
activeDocument.selection.selectAll(); // 全てを選択する
activeDocument.selection.fill(RGBColor,ColorBlendMode.NORMAL, 100, false); // 選択範囲を塗りつぶし

activeDocument.selection.deselect(); // 選択を解除する

// レイヤーの順番を入れ替え
var layerObj= activeDocument.artLayers[1];
layerObj.move(activeDocument.layers[0], ElementPlacement.PLACEBEFORE);
//
}
activeDocument.flatten(); // 画像を統合する
}else{
alert('複数のレイヤーがあります')
}

app.preferences.rulerUnits = default_rulerUnits

背景塗りつぶししない(切り抜きのみの)バージョンはこちら

動画は、上記スクリプトをPhotoshopのドロップレットに組み込んで実行した時の動作です。

スクリプトの実行は“参照...”から
この動作をアクションに登録すればアクションから実行できます。

更新履歴

inserted by FC2 system