[FIXED] Photoshop -Skript Wählen Sie alle sichtbaren Artboards aus

Ausgabe

Ich habe versucht, einen Weg zu finden, alle sichtbaren Zeichenflächen auszuwählen, damit ich sie später alle als PNGs schnell exportieren kann. Ich würde es auch lieben, wenn ich auch den Exportteil in das Skript aufnehmen könnte, aber das ist jetzt nicht das Hauptproblem.

Ich habe diesen Code, der alle sichtbaren Zeichenflächen findet und sie in visibleArtboards speichert, aber ich kann anscheinend keine Möglichkeit finden, eine Auswahl davon zu treffen.

var artboards = activeDoc.layers;
var visibleArtboards = [];
for (var i=0; i<artboards.length; i++){
    if(artboards[i].visible){
        visibleArtboards.push(artboards[i]);
    }
}

activedoc.activeLayer kann eine Auswahl treffen, aber nur 1 einzelne Zeichenfläche.

Wenn mir jemand mit dem fehlenden Teil helfen kann, wäre ich sehr dankbar

Lösung

Sie können die Ebenen-ID der Zeichenflächen abrufen und einer Auswahl hinzufügen. Unter Verwendung Ihres Codes ist visibleArtboards jetzt die ID der Zeichenflächenebenen.

// call the source document
var activeDoc = app.activeDocument;

var artboards = activeDoc.layers;

var visibleArtboards = [];
for (var i=0; i<artboards.length; i++)
{
    if(artboards[i].visible)
    {

      // select ID as we go along
      var layerID = artboards[i].id;
      visibleArtboards.push(layerID);

    }
}

// Loop over the layers again and select all the art boards
for (var i=0; i<visibleArtboards.length; i++)
{
   // add to current selection of layers
   select_by_ID(visibleArtboards[i], true);
}




function select_by_ID(id, add)
{
    if (add == undefined) add = false;
    var desc1 = new ActionDescriptor();
    var ref1 = new ActionReference();
    ref1.putIdentifier(charIDToTypeID('Lyr '), id);
    desc1.putReference(charIDToTypeID('null'), ref1);
    if (add) desc1.putEnumerated(stringIDToTypeID("selectionModifier"), stringIDToTypeID("selectionModifierType"), stringIDToTypeID("addToSelection"));
    executeAction(charIDToTypeID('slct'), desc1, DialogModes.NO);
} // end of selectByID()

Es wird jedoch den Hintergrund hinzufügen (falls enthalten). Ich bin sicher, Sie können das umgehen.


Beantwortet von –
Ghoul Fool


Antwort geprüft von –
David Marino (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like