Photoshop | 表示状態のレイヤー数を求める
スクリプトでは、レイヤーを「ArtLayer」
グループを「LayerSet」と呼んでいる。
このレイヤーの名前を表示してみる。
レイヤー名を表示する
#target photoshop
var doc = app.activeDocument;
for (var i = 0; i < doc.artLayers.length; i++) {
$.writeln(doc.artLayers[i]);
}
// [ArtLayer 背景]
// と表示される
グループ名を表示する
#target photoshop
var doc = app.activeDocument;
for (var i = 0; i < doc.layerSets.length; i++) {
$.writeln(doc.layerSets[i]);
}
// [LayerSet グループ 1]
// [LayerSet グループ 3]
// と表示される
レイヤー名とグループ名を表示する
#target photoshop
var doc = app.activeDocument;
for (var i = 0; i < doc.layers.length; i++) {
$.writeln(doc.layers[i]);
}
// [LayerSet グループ 1]
// [LayerSet グループ 3]
// [ArtLayer 背景]
// と表示される
すべてのレイヤー数を求める
#target photoshop
var doc = app.activeDocument;
for (var i = 0; i < doc.artLayers.length; i++) {
$.writeln(doc.artLayers[i]);
}
// [ArtLayer 背景]
// と表示される
#target photoshop
var doc = app.activeDocument;
for (var i = 0; i < doc.layerSets.length; i++) {
$.writeln(doc.layerSets[i]);
}
// [LayerSet グループ 1]
// [LayerSet グループ 3]
// と表示される
レイヤー名とグループ名を表示する
#target photoshop
var doc = app.activeDocument;
for (var i = 0; i < doc.layers.length; i++) {
$.writeln(doc.layers[i]);
}
// [LayerSet グループ 1]
// [LayerSet グループ 3]
// [ArtLayer 背景]
// と表示される
すべてのレイヤー数を求める
#target photoshop
var doc = app.activeDocument;
for (var i = 0; i < doc.layers.length; i++) {
$.writeln(doc.layers[i]);
}
// [LayerSet グループ 1]
// [LayerSet グループ 3]
// [ArtLayer 背景]
// と表示される
今までは一番上の階層のみを対象にしていたが、
すべてのレイヤー数を求めるには、
各グループ内のレイヤー数を加算する必要がある。
#target photoshop
function getArtLayerCount(doc) {
var count = doc.artLayers.length;
for (var i = 0; i < doc.layerSets.length; i++) {
count += getArtLayerCount(doc.layerSets[i]);
}
return count;
}
var count = getArtLayerCount(doc);
$.writeln(count);
// 4
// と表示される
表示状態のレイヤー数を求める
#target photoshop
var doc = app.activeDocument;
function getVisibleArtLayerCount(doc) {
var count = 0;
for (var i = 0; i < doc.artLayers.length; i++) {
if (doc.artLayers[i].visible) {
count++;
}
}
for (var i = 0; i < doc.layerSets.length; i++) {
if (doc.layerSets[i].visible) {
count += getVisibleArtLayerCount(doc.layerSets[i]);
}
}
return count;
}
var count = getVisibleArtLayerCount(doc);
$.writeln(count);
// 0
// と表示される
#target photoshop
var doc = app.activeDocument;
function getVisibleArtLayerCount(doc) {
var count = 0;
for (var i = 0; i < doc.artLayers.length; i++) {
if (doc.artLayers[i].visible) {
count++;
}
}
for (var i = 0; i < doc.layerSets.length; i++) {
if (doc.layerSets[i].visible) {
count += getVisibleArtLayerCount(doc.layerSets[i]);
}
}
return count;
}
var count = getVisibleArtLayerCount(doc);
$.writeln(count);
// 0
// と表示される
Author And Source
この問題について(Photoshop | 表示状態のレイヤー数を求める), 我々は、より多くの情報をここで見つけました https://qiita.com/raohu/items/23bab68a8ee7f8c8166f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .