Created
July 22, 2021 03:41
-
-
Save sambatlim/c000c9e7fb4c0b28f816a5955b0f558b to your computer and use it in GitHub Desktop.
photoshop script to randomly open layer in each group
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function Visible() { | |
var Grps = app.activeDocument.layerSets; // loops through all groups | |
for(var i = 0; i < Grps.length; i++){ | |
var tmp = app.activeDocument.layerSets[i].layers.length; | |
app.activeDocument.layerSets[i].visible=true; | |
var groupChildArr = app.activeDocument.layerSets[i].layers; | |
var randLays = Math.floor(Math.random() * tmp); | |
groupChildArr[randLays].visible = true; | |
Save(); | |
} | |
Revert(); | |
} | |
function Save() { | |
var outFolder = app.activeDocument; // psd name | |
var outPath = outFolder.path; | |
var fName = "PNG"; // define folder name | |
var f = new Folder(outPath + "/" + fName); | |
if ( ! f.exists ) { | |
f.create() | |
} | |
var saveFile = new File(outPath + "/" + fName +"/" + "Pattern_" + num + ".png"); | |
pngSaveOptions = new PNGSaveOptions(); | |
pngSaveOptions.interlaced = false; | |
app.activeDocument.saveAs(saveFile, pngSaveOptions, true, Extension.LOWERCASE); | |
} | |
// Original code - revert function does not work | |
// for some users | |
//function Revert(){ | |
// var idslct = charIDToTypeID( "slct" ); | |
// var desc300 = new ActionDescriptor(); | |
// var idnull = charIDToTypeID( "null" ); | |
// var ref163 = new ActionReference(); | |
// var idSnpS = charIDToTypeID( "SnpS" ); | |
// ref163.putName( idSnpS, "test.psd" ); | |
// desc300.putReference( idnull, ref163 ); | |
// executeAction( idslct, desc300, DialogModes.NO ); | |
//} | |
function Revert(){ | |
var idRvrt = charIDToTypeID( "Rvrt" ); | |
executeAction( idRvrt, undefined, DialogModes.NO ); | |
} | |
var count = prompt("How many patterns you want",""); | |
for (var x=0 ; x<count;x++){ | |
var num = x+1; | |
Visible(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment