Amazonで商品を見るセール会場へ

Photoshopスクリプト(jsx)│選択したファイル/フォルダを1つのドキュメントにレイヤー化する方法

Photoshopで複数の画像を一括で1つのドキュメントにレイヤーとして読み込むスクリプトを紹介します。

複数の画像を手動で開く手間を省き、作業を効率化できます。

目次

スクリプトのメリット

  • 選択した画像を一括で1つのドキュメントにレイヤー化
  • フォルダ内の画像もまとめて読み込める
  • Photoshop上での整理作業を効率化
選択した画像やフォルダ内の画像をPhotoshopの1つのドキュメントにレイヤー化して読み込む様子。

選択したファイル・フォルダを1つのドキュメントにレイヤー化する方法

STEP.1 スクリプトをダウンロード・格納

  1. 下記のコードをメモ帳などに貼り付けて保存(ファイル用とフォルダ用の2種類あります)

Photoshopのほかの操作は、まとめから確認できます。

CGM_SelectFilesImportLayers.jsx

app.bringToFront();
main();

function main() {
    var fileObj = new File();
    var fileArray = fileObj.openDlg('ファイルを選択してください:', '', true);
    //新規ドキュメント
    var newDoc = documents.add(512, 512, 72, 'test', NewDocumentMode.RGB, DocumentFill.TRANSPARENT, 1);

    for (var i = 0; i < fileArray.length; i++) {
        var doc = open(fileArray[i]);
        //モードをRGBに 
        doc.changeMode(ChangeMode.RGB);
        //新しくドキュメントに読み込み
        doc.artLayers.add();
        //レイヤーを統合(透明のレイヤーと統合するので影響なし)
        doc.mergeVisibleLayers();
        //読み込んだファイル名を取得
        var name = doc.name;
        var layer = doc.activeLayer;
        //レイヤー名をドキュメント名に
        layer.name = name;
        //始めに作った新規ドキュメントへ複製コピー
        layer.duplicate(newDoc, ElementPlacement.PLACEATBEGINNING);
        //読み込んだドキュメントを閉じる
        doc.close(SaveOptions.DONOTSAVECHANGES);
    }

    //一番下のレイヤーの削除
    var layObj = activeDocument.artLayers;
    var bgLayer = layObj[layObj.length - 1];
    bgLayer.remove();

    //すべての領域を表示
    activeDocument.revealAll();
    //透明部分のトリミング
    activeDocument.trim(TrimType.TRANSPARENT, true, true, true, true);
}

CGM_SelectFolderImportLayers.jsx

app.bringToFront();
main();

function main() {
    var folderObj = new Object();
    var sourceFolder = Folder.selectDialog('フォルダを選択してください:', Folder(folderObj));
    //新規ドキュメント
    var newDoc = documents.add(512, 512, 72, 'test', NewDocumentMode.RGB, DocumentFill.TRANSPARENT, 1);

    //フォルダ内のファイル取得
    var fileArray = new Array();
    var docs = sourceFolder.getFiles();
    var len = docs.length;
    for (var i = 0; i < len; i++) {
        var doc = docs[i];
        fileArray.push(doc);
    }

    for (var i = 0; i < fileArray.length; i++) {
        var doc = open(fileArray[i]);
        //モードをRGBに 
        doc.changeMode(ChangeMode.RGB);
        //新しくドキュメントに読み込み
        doc.artLayers.add();
        //レイヤーを統合(透明のレイヤーと統合するので影響なし)
        doc.mergeVisibleLayers();
        //読み込んだファイル名を取得
        var name = doc.name;
        var layer = doc.activeLayer;
        //レイヤー名をドキュメント名に
        layer.name = name;
        //始めに作った新規ドキュメントへ複製コピー
        layer.duplicate(newDoc, ElementPlacement.PLACEATBEGINNING);
        //読み込んだドキュメントを閉じる
        doc.close(SaveOptions.DONOTSAVECHANGES);
    }

    //一番下のレイヤーの削除
    var layObj = activeDocument.artLayers;
    var bgLayer = layObj[layObj.length - 1];
    bgLayer.remove();

    //すべての領域を表示
    activeDocument.revealAll();
    //透明部分のトリミング
    activeDocument.trim(TrimType.TRANSPARENT, true, true, true, true);
}
  1. CGM_SelectFilesImportLayers.jsx CGM_SelectFolderImportLayers.jsx以下のフォルダに保存します。
C:\Program Files\Adobe\Adobe Photoshop CC\Presets\Scripts\
  1. Photoshopを再起動します。

STEP.2 スクリプトを実行

  1. [ファイル][スクリプト][CGM_SelectFilesImportLayers]を選択します。
  2. ファイル選択ダイアログで対象の画像を選択します。
  3. 選択したすべての画像が1つのドキュメント内にレイヤーとして読み込まれます

読み込みと書き出しに関する記事は、ほかにもあります。

まとめ

  • 選択したファイルを一括で1つのドキュメントにレイヤー化可能
  • フォルダ内の画像もまとめて読み込める
  • 配置作業にかかる手間を削減

Photoshopで複数の画像を効率的にレイヤー化し、作業時間を短縮できます。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Photoshopのおすすめ書籍

Photoshop用PCの選び方

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次