-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathFlattenGroups.js
64 lines (52 loc) · 1.51 KB
/
FlattenGroups.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//The MIT License(MIT)
//Copyright(c) 2015 Andrew Armbruster
//Please read included LICENSE for license agreement
displayDialogs = DialogModes.NO;
var FILE_TYPE = ".psd, .pdb"; // The type of files that this script works on -- you can change
var SEARCH_MASK = ".psd, .pdb" + FILE_TYPE; // Image file filter to find only those files
var XMP_TYPE = ".xmp"; // File extension for XMP output files
var MAC_XMP_TYPE = "XMPT"; // Macintosh file type for .xmp files
var MAC_XMP_CREATOR = "8BIM"; // Macintosh file creator for .xmp files
init()
function init()
{
var ND;
try
{
var AD = activeDocument;
var ND = app.documents.add(AD.width, AD.height, 72.0);
displayDialogs = DialogModes.ALL;
savePSD(ND, AD.path);
flattenGroups(AD);
}catch(e){
ND.close(SaveOptions.DONOTSAVECHANGES);
return;
}
ND.close(SaveOptions.SAVECHANGES);
}
function savePSD( doc, saveFile )
{
var saveOptions = new PhotoshopSaveOptions();
doc.saveAs( saveFile, saveOptions, false);
}
function flattenGroups(AD)
{
var ND = activeDocument;
displayDialogs = DialogModes.NO;
for(i = AD.layerSets.length - 1; i >= 0;i--)
{
if(AD.layers[i].typename == "ArtLayer")
{
continue;
}
var newSet = ND.layerSets.add();
newSet.name = AD.layerSets[i].name;
ND.activeLayer = newSet;
app.activeDocument = AD;
AD.activeLayer = AD.layerSets[i];
var tmp = AD.activeLayer.duplicate(ND.layerSets[0], ElementPlacement.PLACEBEFORE);
app.activeDocument = ND;
tmp = tmp.merge();
tmp.move(newSet, ElementPlacement.INSIDE);
}
}