Advertisement
Baoulettes

Categories button generation

Feb 1st, 2020
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.99 KB | None | 0 0
  1. // Exports a saved multi-layered file as a .png in the same directory.
  2.  
  3. function SaveCategories_png(){
  4. // Confirm the document has already been saved and so has a path to use
  5. try {
  6. app.activeDocument.save()
  7. } catch(e) {
  8. alert("Could not export PNG as the document is not saved.\nPlease save and try again.")
  9. return
  10. }
  11. // Categories list :
  12. var Categories = new Array(
  13. '-',
  14. 'Fusion',
  15. 'Dragon\rmaléfique',
  16. 'Tenkaichi\rBudokai',
  17. 'Fille pleine\rde vie',
  18. 'Saiyan de\rsang-mêlé',
  19. 'Survie de\rl\'Univers',
  20. 'Ressuscité',
  21. 'Divin',
  22. 'Saga de Boo',
  23. 'Potalas',
  24. 'Guerrier\rinférieur',
  25. 'Super Saiyan 3',
  26. 'Forme géante',
  27. 'Saga de Namek',
  28. 'Commando\rGinyu',
  29. 'Boss des films',
  30. 'Saiyan pur',
  31. 'Namek',
  32. 'Saga du futur',
  33. 'Puissance\rmaximale',
  34. 'Cyborg',
  35. 'Représentants de\rl\'Univers 7',
  36. 'Transformation\rfortifiante',
  37. 'Lignée diabolique',
  38. 'Chercheurs de\rboules de cristal',
  39. 'Voyageur\rdu temps',
  40. 'Univers 6',
  41. 'Forces jointes',
  42. 'Héros des films',
  43. 'Famille de\rGoku',
  44. 'Famille de\rVegeta',
  45. 'Vie artificielle',
  46. 'Enfant',
  47. 'Arc enfant',
  48. 'Lien de\rfratrie',
  49. 'Super Saiyan',
  50. 'Digne rival',
  51. 'Cyborg -\rSaga de Cell',
  52. 'Kamehameha',
  53. 'Lien maître\ret disciple',
  54. 'Conquérant',
  55. 'Dragon Ball\rHeroes',
  56. 'Cible:\rSon Goku',
  57. 'Guerrier de\rl\'au-delà',
  58. 'Super Saiyan 2',
  59. 'Dernier atout'
  60. );
  61.  
  62. //for (id = 0; id < Categories.length ;) {
  63. for (id = 0; id < 3;) {
  64. var currentname = Categories[id];
  65. var currentid = id;
  66. if (currentid <= 9) {
  67. var currentid = '000'+id;
  68. } else if (currentid <= 99) {
  69. var currentid = '00'+id;
  70. } else if (currentid <= 999) {
  71. var currentid = '00'+id;
  72. }
  73. var LabelFile = "Label_"+currentid+".png";
  74. var A_file = "card_category_label_"+currentid+"_a.png";
  75. var Bon_file = "card_category_label_"+currentid+"_b_on.png";
  76. var Boff_file = "card_category_label_"+currentid+"_b_off.png";
  77. var originalDoc = app.activeDocument
  78. // Check there is at least 1 visible layer.
  79. var foundVisible = false
  80. for (i = 0; i < originalDoc.layers.length; i++) {
  81. if (originalDoc.layers[i].visible) {
  82. foundVisible = true
  83. break
  84. }
  85. }
  86. if (!foundVisible){
  87. alert("No visible layers found. PNG export failed.")
  88. return
  89. }
  90. // Duplicate. We'll save the duplicate as a .png and close it.
  91. MarcLabel(currentid, originalDoc, currentname, Categories[id])
  92. A_PNG(currentid, originalDoc, currentname, Categories[id])
  93. B_on_PNG(currentid, originalDoc, currentname, Categories[id])
  94. B_off_PNG(currentid, originalDoc, currentname, Categories[id])
  95. app.activeDocument=originalDoc
  96. id++
  97. }
  98. }
  99. function MarcLabel(id, originalDoc, currentname, categoryname) {
  100. // Photoshop must have a visible layer selected to merge visible layers, so we ensure there is one selected.
  101. HideAll(originalDoc)
  102. ShowTextLayer(originalDoc, '1Line');
  103. ShowTextLayer(originalDoc, '2Line');
  104. if (currentname.indexOf("\r") != -1) {
  105. changeTextLayerContent(originalDoc, '1Line', '');
  106. changeTextLayerContent(originalDoc, '2Line', categoryname);
  107. } else {
  108. changeTextLayerContent(originalDoc, '1Line', categoryname);
  109. changeTextLayerContent(originalDoc, '2Line', '');
  110. }
  111. var newDoc = originalDoc.duplicate()
  112. var dummyVisibleLayer = newDoc.artLayers.add();
  113. newDoc.activeLayer = dummyVisibleLayer
  114. // Merge the layers.
  115. newDoc.mergeVisibleLayers()
  116. // Remove all empty layers.
  117. for (i = newDoc.layers.length-1; i >=0; i--){
  118. if (!newDoc.layers[i].visible){
  119. newDoc.layers[i].remove()
  120. }
  121. }
  122. pngOptions = new PNGSaveOptions()
  123. pngOptions.compression = 0
  124. pngOptions.interlaced = false
  125. savePath = File(originalDoc.path + '/'+'Label_'+id+'.png');
  126. newDoc.saveAs(savePath, pngOptions, false, Extension.LOWERCASE)
  127. newDoc.close()
  128. }
  129. function A_PNG(id, originalDoc, currentname, categoryname) {
  130. HideAll(originalDoc)
  131. ShowTextLayer(originalDoc, 'A_bg');
  132. ShowTextLayer(originalDoc, '1_line_A');
  133. ShowTextLayer(originalDoc, '2_line_A');
  134. if (currentname.indexOf("\r") != -1) {
  135. changeTextLayerContent(originalDoc, '1_line_A', '');
  136. changeTextLayerContent(originalDoc, '2_line_A', categoryname);
  137. } else {
  138. changeTextLayerContent(originalDoc, '1_line_A', categoryname);
  139. changeTextLayerContent(originalDoc, '2_line_A', '');
  140. }
  141. var newDoc = originalDoc.duplicate()
  142. // Photoshop must have a visible layer selected to merge visible layers, so we ensure there is one selected.
  143. var dummyVisibleLayer = newDoc.artLayers.add();
  144. newDoc.activeLayer = dummyVisibleLayer
  145. // Merge the layers.
  146. newDoc.mergeVisibleLayers()
  147. // Remove all empty layers.
  148. for (i = newDoc.layers.length-1; i >=0; i--){
  149. if (!newDoc.layers[i].visible){
  150. newDoc.layers[i].remove()
  151. }
  152. }
  153. pngOptions = new PNGSaveOptions()
  154. pngOptions.compression = 0
  155. pngOptions.interlaced = false
  156. savePath = File(originalDoc.path + '/'+'card_category_label_'+id+'_a.png');
  157. newDoc.saveAs(savePath, pngOptions, false, Extension.LOWERCASE)
  158. newDoc.close()
  159. }
  160. function B_off_PNG(id, originalDoc, currentname, categoryname) {
  161. HideAll(originalDoc)
  162. ShowTextLayer(originalDoc, 'B_off_bg');
  163. ShowTextLayer(originalDoc, '1Line_Boff');
  164. ShowTextLayer(originalDoc, '2Line_Boff');
  165. if (currentname.indexOf("\r") != -1) {
  166. changeTextLayerContent(originalDoc, '1Line_Boff', '');
  167. changeTextLayerContent(originalDoc, '2Line_Boff', categoryname);
  168. } else {
  169. changeTextLayerContent(originalDoc, '1Line_Boff', categoryname);
  170. changeTextLayerContent(originalDoc, '2Line_Boff', '');
  171. }
  172. var newDoc = originalDoc.duplicate()
  173. // Photoshop must have a visible layer selected to merge visible layers, so we ensure there is one selected.
  174. var dummyVisibleLayer = newDoc.artLayers.add();
  175. newDoc.activeLayer = dummyVisibleLayer
  176. // Merge the layers.
  177. newDoc.mergeVisibleLayers()
  178. // Remove all empty layers.
  179. for (i = newDoc.layers.length-1; i >=0; i--){
  180. if (!newDoc.layers[i].visible){
  181. newDoc.layers[i].remove()
  182. }
  183. }
  184. pngOptions = new PNGSaveOptions()
  185. pngOptions.compression = 0
  186. pngOptions.interlaced = false
  187. savePath = File(originalDoc.path + '/'+'card_category_label_'+id+'_b_off.png');
  188. newDoc.saveAs(savePath, pngOptions, false, Extension.LOWERCASE)
  189. newDoc.close()
  190. }
  191. function B_on_PNG(id, originalDoc, currentname, categoryname) {
  192. HideAll(originalDoc)
  193. ShowTextLayer(originalDoc, 'B_on_bg');
  194. ShowTextLayer(originalDoc, '1Line_Bon');
  195. ShowTextLayer(originalDoc, '2Line_Bon');
  196. if (currentname.indexOf("\r") != -1) {
  197. changeTextLayerContent(originalDoc, '1Line_Bon', '');
  198. changeTextLayerContent(originalDoc, '2Line_Bon', categoryname);
  199. } else {
  200. changeTextLayerContent(originalDoc, '1Line_Bon', categoryname);
  201. changeTextLayerContent(originalDoc, '2Line_Bon', '');
  202. }
  203. var newDoc = originalDoc.duplicate()
  204. // Photoshop must have a visible layer selected to merge visible layers, so we ensure there is one selected.
  205. var dummyVisibleLayer = newDoc.artLayers.add();
  206. newDoc.activeLayer = dummyVisibleLayer
  207. // Merge the layers.
  208. newDoc.mergeVisibleLayers()
  209. // Remove all empty layers.
  210. for (i = newDoc.layers.length-1; i >=0; i--){
  211. if (!newDoc.layers[i].visible){
  212. newDoc.layers[i].remove()
  213. }
  214. }
  215. pngOptions = new PNGSaveOptions()
  216. pngOptions.compression = 0
  217. pngOptions.interlaced = false
  218. savePath = File(originalDoc.path + '/'+'card_category_label_'+id+'_b_on.png');
  219. newDoc.saveAs(savePath, pngOptions, false, Extension.LOWERCASE)
  220. newDoc.close()
  221. }
  222. function changeTextLayerContent(doc, layerName, newTextString) {
  223. for (var i = 0, max = doc.layers.length; i < max; i++) {
  224. var layerRef = doc.layers[i];
  225. if (layerRef.typename === "ArtLayer") {
  226. if (layerRef.name === layerName && layerRef.kind === LayerKind.TEXT) {
  227. layerRef.textItem.contents = newTextString;
  228. }
  229. } else {
  230. changeTextLayerContent(layerRef, layerName, newTextString);
  231. }
  232. }
  233. }
  234. function ShowTextLayer(doc, layerName) {
  235. for (var i = 0, max = doc.layers.length; i < max; i++) {
  236. var layerRef = doc.layers[i];
  237. if (layerRef.typename === "ArtLayer") {
  238. if (layerRef.name === layerName) {
  239. layerRef.visible = true;
  240. }
  241. } else {
  242. ShowTextLayer(layerRef, layerName);
  243. }
  244. }
  245. }
  246. function HideTextLayer(doc, layerName) {
  247. for (var i = 0, max = doc.layers.length; i < max; i++) {
  248. var layerRef = doc.layers[i];
  249. if (layerRef.typename === "ArtLayer") {
  250. if (layerRef.name === layerName) {
  251. layerRef.visible = false;
  252. }
  253. } else {
  254. HideTextLayer(layerRef, layerName);
  255. }
  256. }
  257. }
  258. function HideAll(originalDoc) {
  259. HideTextLayer(originalDoc, '1Line');
  260. HideTextLayer(originalDoc, '2Line');
  261. HideTextLayer(originalDoc, 'A_bg');
  262. HideTextLayer(originalDoc, '1_line_A');
  263. HideTextLayer(originalDoc, '2_line_A');
  264. HideTextLayer(originalDoc, 'B_on_bg');
  265. HideTextLayer(originalDoc, '1Line_Bon');
  266. HideTextLayer(originalDoc, '2Line_Bon');
  267. HideTextLayer(originalDoc, 'B_off_bg');
  268. HideTextLayer(originalDoc, '1Line_Boff');
  269. HideTextLayer(originalDoc, '2Line_Boff');
  270. }
  271. SaveCategories_png()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement