Created
December 23, 2016 11:27
-
-
Save andrewebdev/c14d8229256ac55032c77f01812f9bf3 to your computer and use it in GitHub Desktop.
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
//#target photoshop | |
app.bringToFront(); | |
activeDocument.suspendHistory('Raster SOs', 'main()'); | |
function main() { | |
if(!documents.length) return; | |
selectAllLayers(); | |
var selectedLayers = getSelectedLayersIdx(); | |
for(var a in selectedLayers) { | |
if (hasSmartObject(Number(selectedLayers[a]))) { | |
makeActiveByIndex(Number(selectedLayers[a]),false); | |
executeAction(stringIDToTypeID("rasterizePlaced"), undefined, DialogModes.NO); | |
} | |
} | |
} | |
function hasSmartObject(idx) { | |
var ref = new ActionReference(); | |
ref.putProperty( charIDToTypeID("Prpr") , stringIDToTypeID("smartObject")); | |
ref.putIndex(charIDToTypeID("Lyr "), idx); | |
var desc = executeActionGet(ref); | |
if(desc.hasKey(stringIDToTypeID('smartObject'))) return true; else return false; | |
} | |
function makeActiveByIndex(idx, visible) { | |
var desc = new ActionDescriptor(); | |
var ref = new ActionReference(); | |
ref.putIndex(charIDToTypeID("Lyr "), idx) | |
desc.putReference(charIDToTypeID("null"), ref); | |
desc.putBoolean(charIDToTypeID("MkVs"), visible); | |
executeAction(charIDToTypeID("slct"), desc, DialogModes.NO); | |
}; | |
function getSelectedLayersIdx() { | |
var selectedLayers = new Array; | |
var ref = new ActionReference(); | |
ref.putEnumerated( charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") ); | |
var desc = executeActionGet(ref); | |
if (desc.hasKey(stringIDToTypeID('targetLayers'))) { | |
desc = desc.getList(stringIDToTypeID('targetLayers')); | |
var c = desc.count | |
var selectedLayers = new Array(); | |
for (var i=0; i<c; i++) { | |
try { | |
activeDocument.backgroundLayer; | |
selectedLayers.push(desc.getReference(i).getIndex()); | |
} catch(e) { | |
selectedLayers.push(desc.getReference(i).getIndex() + 1); | |
} | |
} | |
} else { | |
var ref = new ActionReference(); | |
ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID("ItmI")); | |
ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") ); | |
try { | |
activeDocument.backgroundLayer; | |
selectedLayers.push(executeActionGet(ref).getInteger(charIDToTypeID("ItmI")) - 1); | |
} catch(e) { | |
selectedLayers.push(executeActionGet(ref).getInteger(charIDToTypeID("ItmI"))); | |
} | |
} | |
return selectedLayers; | |
}; | |
function selectAllLayers() { | |
var desc29 = new ActionDescriptor(); | |
var ref23 = new ActionReference(); | |
ref23.putEnumerated( | |
charIDToTypeID('Lyr '), | |
charIDToTypeID('Ordn'), | |
charIDToTypeID('Trgt') | |
); | |
desc29.putReference(charIDToTypeID('null'), ref23); | |
executeAction(stringIDToTypeID('selectAllLayers'), desc29, DialogModes.NO); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment