経験知ロゴ

Photoshop CCで画像をキャンバスサイズにフィットさせる方法

キャンバスにフィットさせる

Photoshopに画像を挿入すると、画像全体がキャンバス内に入るようにリサイズされるので、どちらかに余白ができてしまいます。

このブログのアイキャッチ画像は1200×630で作成しているので、1200×630のキャンバスに画像を挿入すると左右に余白ができます。

画像の上下は削除されても良いので、キャンバスいっぱいに画像を表示させるようにしたいです。

そこで便利なのがPhotoshopのスクリプト。JavaScriptで書かれたスクリプトを実行すると、画像をキャンバスいっぱいに広げ、上下中央寄せしてくれます。

その方法を紹介します。

画像をキャンバスにフィット

「PhotoshopでレイヤーサイズをカンバスサイズにフィットするJSX « HYPERDASH BLOG++」で紹介されているスクリプトを使います。(リンク先のブログは閉鎖された可能性があります。)

メモなどのテキストエディタを開き、下記コードをコピペ。

var canvasWidth = activeDocument.width;
var canvasHeight = activeDocument.height;
var layer = activeDocument.activeLayer;
var layerX = layer.bounds[0];
var layerY = layer.bounds[1];
var layerWidth = layer.bounds[2] - layerX;
var layerHeight = layer.bounds[3] - layerY;
var rate;
 
if(layerHeight * (canvasWidth / layerWidth)>= canvasHeight){
    // 拡大縮小倍率を白が出ないようにするため小数点以下第4位で切り上げ(この辺は調整してください)
    rate = Math.ceil((canvasWidth / layerWidth) * 10000) / 100;
} else {
    // 拡大縮小倍率を白が出ないようにするため小数点以下第4位で切り上げ(この辺は調整してください)
    rate = Math.ceil((canvasHeight / layerHeight) * 10000) / 100;
}
 
// レイヤーをリサイズ
layer.resize(rate, rate);
 
layerX = layer.bounds[0];
layerY = layer.bounds[1];
layerWidth = layer.bounds[2] - layerX;
layerHeight = layer.bounds[3] - layerY;
 
// 中央寄せ
layer.translate(((canvasWidth - layerWidth) / 2) - layerX, ((canvasHeight - layerHeight) / 2) - layerY);

ファイル名を「レイヤーをカンバスにフィット.jsx」のように拡張子を「.jsx」として、自分がわかりやすい名前を付け、Photoshopのスクリプトフォルダに保存します。

/Applications/Adobe Photoshop XXXX/Presets/Scripts

あとは、変形したい画像やレイヤーを選択した状態で、

「ファイル」→「スクリプト」→「自分が付けたスクリプトのファイル名」

をクリックすると画像やレイヤーがキャンバスにフィットします。

スクリプトを実行すると、左右に余白があったのが、
最初の画像

左右がフィットすることで余白がなくなっています。
余白がなくなった

あとは上下の位置を微調整すればOKです。

おわりに

最初はPhotoshopの設定で画面いっぱいに表示させるようにできないか探したのですが、どうやらそういう設定はないようです。

この作業を「変形」を使ってやると、細かなマウス操作や写真の移動などかなりめんどくさいので、スクリプト一発でできるようになって良かったです。

▼役に立ったらシェアをお願いします