Photoshopスクリプト : 選択レイヤー以外非表示
#Photoshopスクリプト #Photoshop #2019-11-29
code:選択レイヤー以外非表示.jsx
if (app.documents.length > 0) { // ドキュメントが1つ以上開かれている場合のみ実行
// 現在のドキュメント
var doc = app.activeDocument;
// 保存先フォルダの選択
var copiedDoc = app.activeDocument.duplicate(); // ドキュメント複製
// ドキュメント内のレイヤーを非表示
HideLayers(app.activeDocument);
// 選択中のレイヤーを表示
var selectedLayers = GetSelectedLayers();
for (index = 0; index < selectedLayers.length; index++) {
selectedLayersindex.visible = true;
}
// // 保存なしで閉じる
// copiedDoc.close(SaveOptions.DONOTSAVECHANGES);
}
function HideLayers(layObj) {
var n = layObj.artLayers.length;
if (n > 0) {
for (var i = 0; i < n; i++) {
// レイヤー非表示
layObj.artLayersi.visible = false;
}
}
var ns = layObj.layerSets.length;
if (ns > 0) {
for (var i = 0; i < ns; i++) {
HideLayers(layObj.layerSetsi)
}
}
}
// 選択中のレイヤーを取得(https://forums.adobe.com/thread/2281117)
function GetSelectedLayers() {
var A = [];
var desc11 = new ActionDescriptor();
var ref9 = new ActionReference();
ref9.putClass(stringIDToTypeID('layerSection'));
desc11.putReference(charIDToTypeID('null'), ref9);
var ref10 = new ActionReference();
ref10.putEnumerated(charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt'));
desc11.putReference(charIDToTypeID('From'), ref10);
executeAction(charIDToTypeID('Mk '), desc11, DialogModes.NO);
var gL = activeDocument.activeLayer.layers;
for (var i = 0; i < gL.length; i++) {
A.push(gLi);
}
executeAction(charIDToTypeID('undo'), undefined, DialogModes.NO);
return A;
};