レイヤーの名前が「レイヤー 1」「レイヤー 2」という形式 (レイヤーを新しく作成した時にデフォルトで付けられる名前)のレイヤーをすべてJPGファイルで出力します。
利用例
スクリーンショットしたパソコンでの作業手順画像を、Photoshop上に次々と貼り付けていった後にそれらをjpgで出力するケースで使えます。レイヤーの数が多くなっていくとそれぞれのスクリーンショットのレイヤーをJPGとして出力すると大変なので、このスクリプトを使用することで、自動で出力されます。
仕様
Photoshopのアクティブドキュメントの「レイヤー 1」から「レイヤー n」までをPhoto_1.jpgからPhoto_n.jpgのファイル名で出力します。
アクティブドキュメントを開いた状態で、メニューバーの「ファイル」>「スクリプト」>「参照」でコードが書かれたファイルを指定することで実行できます。
出力されるファイルは画質最高12でアクティブドキュメントと同じフォルダに出力されます。
// ドキュメントが開かれているか確認 if (app.documents.length > 0) { var doc = app.activeDocument; // すべてのレイヤーを取得し、必要な形式の名前か確認 for (var i = 0; i < doc.artLayers.length; i++) { var layer = doc.artLayers[i]; // レイヤー名が "レイヤー " で始まり、数字が続く場合に処理 if (layer.name.match(/^レイヤー (\d+)$/)) { var layerNumber = RegExp.$1; // 正規表現で取得した番号部分 // レイヤーを表示 layer.visible = true; // 他のレイヤーを非表示にして単独で表示 for (var j = 0; j < doc.artLayers.length; j++) { if (i !== j) doc.artLayers[j].visible = false; } // ファイルの保存パスと名前を設定 var filePath = File(doc.path + "/photo_" + layerNumber + ".jpg"); // JPEG保存オプション設定 var jpegOptions = new JPEGSaveOptions(); jpegOptions.quality = 12; // 画質最高 // 画像を保存 doc.saveAs(filePath, jpegOptions, true, Extension.LOWERCASE); // 保存後にレイヤーを再度非表示にする layer.visible = false; } } // 全レイヤーを再表示 for (var k = 0; k < doc.artLayers.length; k++) { doc.artLayers[k].visible = true; } alert("レイヤーを個別に保存しました。"); } else { alert("ドキュメントが開かれていません。"); }