Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Exports a saved multi-layered file as a .png in the same directory.
- function SaveCategories_png(){
- // Confirm the document has already been saved and so has a path to use
- try {
- app.activeDocument.save()
- } catch(e) {
- alert("Could not export PNG as the document is not saved.\nPlease save and try again.")
- return
- }
- // Categories list :
- var Categories = new Array(
- '-',
- 'Fusion',
- 'Dragon\rmaléfique',
- 'Tenkaichi\rBudokai',
- 'Fille pleine\rde vie',
- 'Saiyan de\rsang-mêlé',
- 'Survie de\rl\'Univers',
- 'Ressuscité',
- 'Divin',
- 'Saga de Boo',
- 'Potalas',
- 'Guerrier\rinférieur',
- 'Super Saiyan 3',
- 'Forme géante',
- 'Saga de Namek',
- 'Commando\rGinyu',
- 'Boss des films',
- 'Saiyan pur',
- 'Namek',
- 'Saga du futur',
- 'Puissance\rmaximale',
- 'Cyborg',
- 'Représentants de\rl\'Univers 7',
- 'Transformation\rfortifiante',
- 'Lignée diabolique',
- 'Chercheurs de\rboules de cristal',
- 'Voyageur\rdu temps',
- 'Univers 6',
- 'Forces jointes',
- 'Héros des films',
- 'Famille de\rGoku',
- 'Famille de\rVegeta',
- 'Vie artificielle',
- 'Enfant',
- 'Arc enfant',
- 'Lien de\rfratrie',
- 'Super Saiyan',
- 'Digne rival',
- 'Cyborg -\rSaga de Cell',
- 'Kamehameha',
- 'Lien maître\ret disciple',
- 'Conquérant',
- 'Dragon Ball\rHeroes',
- 'Cible:\rSon Goku',
- 'Guerrier de\rl\'au-delà',
- 'Super Saiyan 2',
- 'Dernier atout'
- );
- for (id = 0; id < Categories.length ;) {
- //for (id = 0; id < 3;) {
- var currentname = Categories[id];
- var currentid = id;
- if (currentid <= 9) {
- var currentid = '000'+id;
- } else if (currentid <= 99) {
- var currentid = '00'+id;
- } else if (currentid <= 999) {
- var currentid = '00'+id;
- }
- var LabelFile = "Label_"+currentid+".png";
- var A_file = "card_category_label_"+currentid+"_a.png";
- var Bon_file = "card_category_label_"+currentid+"_b_on.png";
- var Boff_file = "card_category_label_"+currentid+"_b_off.png";
- var originalDoc = app.activeDocument
- // Check there is at least 1 visible layer.
- var foundVisible = false
- for (i = 0; i < originalDoc.layers.length; i++) {
- if (originalDoc.layers[i].visible) {
- foundVisible = true
- break
- }
- }
- if (!foundVisible){
- alert("No visible layers found. PNG export failed.")
- return
- }
- // Duplicate. We'll save the duplicate as a .png and close it.
- MarcLabel(currentid, originalDoc, currentname, Categories[id])
- A_PNG(currentid, originalDoc, currentname, Categories[id])
- B_on_PNG(currentid, originalDoc, currentname, Categories[id])
- B_off_PNG(currentid, originalDoc, currentname, Categories[id])
- app.activeDocument=originalDoc
- id++
- }
- }
- function MarcLabel(id, originalDoc, currentname, categoryname) {
- // Photoshop must have a visible layer selected to merge visible layers, so we ensure there is one selected.
- HideAll(originalDoc)
- ShowTextLayer(originalDoc, 'Labels');
- if (currentname.indexOf("\r") != -1) {
- changeTextLayerContent(originalDoc, '1Line', '');
- changeTextLayerContent(originalDoc, '2Line', categoryname);
- } else {
- changeTextLayerContent(originalDoc, '1Line', categoryname);
- changeTextLayerContent(originalDoc, '2Line', '');
- }
- var newDoc = originalDoc.duplicate()
- var dummyVisibleLayer = newDoc.artLayers.add();
- newDoc.activeLayer = dummyVisibleLayer
- // Merge the layers.
- newDoc.mergeVisibleLayers()
- // Remove all empty layers.
- for (i = newDoc.layers.length-1; i >=0; i--){
- if (!newDoc.layers[i].visible){
- newDoc.layers[i].remove()
- }
- }
- pngOptions = new PNGSaveOptions()
- pngOptions.compression = 0
- pngOptions.interlaced = false
- savePath = File(originalDoc.path + '/'+'Label_'+id+'.png');
- newDoc.saveAs(savePath, pngOptions, false, Extension.LOWERCASE)
- newDoc.close()
- }
- function A_PNG(id, originalDoc, currentname, categoryname) {
- HideAll(originalDoc)
- ShowTextLayer(originalDoc, 'A');
- if (currentname.indexOf("\r") != -1) {
- changeTextLayerContent(originalDoc, '1_line_A', '');
- changeTextLayerContent(originalDoc, '2_line_A', categoryname);
- } else {
- changeTextLayerContent(originalDoc, '1_line_A', categoryname);
- changeTextLayerContent(originalDoc, '2_line_A', '');
- }
- var newDoc = originalDoc.duplicate()
- // Photoshop must have a visible layer selected to merge visible layers, so we ensure there is one selected.
- var dummyVisibleLayer = newDoc.artLayers.add();
- newDoc.activeLayer = dummyVisibleLayer
- // Merge the layers.
- newDoc.mergeVisibleLayers()
- // Remove all empty layers.
- for (i = newDoc.layers.length-1; i >=0; i--){
- if (!newDoc.layers[i].visible){
- newDoc.layers[i].remove()
- }
- }
- pngOptions = new PNGSaveOptions()
- pngOptions.compression = 0
- pngOptions.interlaced = false
- savePath = File(originalDoc.path + '/'+'card_category_label_'+id+'_a.png');
- newDoc.saveAs(savePath, pngOptions, false, Extension.LOWERCASE)
- newDoc.close()
- }
- function B_off_PNG(id, originalDoc, currentname, categoryname) {
- HideAll(originalDoc)
- ShowTextLayer(originalDoc, 'B OFF');
- if (currentname.indexOf("\r") != -1) {
- changeTextLayerContent(originalDoc, '1Line_Boff', '');
- changeTextLayerContent(originalDoc, '2Line_Boff', categoryname);
- } else {
- changeTextLayerContent(originalDoc, '1Line_Boff', categoryname);
- changeTextLayerContent(originalDoc, '2Line_Boff', '');
- }
- var newDoc = originalDoc.duplicate()
- // Photoshop must have a visible layer selected to merge visible layers, so we ensure there is one selected.
- var dummyVisibleLayer = newDoc.artLayers.add();
- newDoc.activeLayer = dummyVisibleLayer
- // Merge the layers.
- newDoc.mergeVisibleLayers()
- // Remove all empty layers.
- for (i = newDoc.layers.length-1; i >=0; i--){
- if (!newDoc.layers[i].visible){
- newDoc.layers[i].remove()
- }
- }
- pngOptions = new PNGSaveOptions()
- pngOptions.compression = 0
- pngOptions.interlaced = false
- savePath = File(originalDoc.path + '/'+'card_category_label_'+id+'_b_off.png');
- newDoc.saveAs(savePath, pngOptions, false, Extension.LOWERCASE)
- newDoc.close()
- }
- function B_on_PNG(id, originalDoc, currentname, categoryname) {
- HideAll(originalDoc)
- ShowTextLayer(originalDoc, 'B On');
- if (currentname.indexOf("\r") != -1) {
- changeTextLayerContent(originalDoc, '1Line_Bon', '');
- changeTextLayerContent(originalDoc, '2Line_Bon', categoryname);
- } else {
- changeTextLayerContent(originalDoc, '1Line_Bon', categoryname);
- changeTextLayerContent(originalDoc, '2Line_Bon', '');
- }
- var newDoc = originalDoc.duplicate()
- // Photoshop must have a visible layer selected to merge visible layers, so we ensure there is one selected.
- var dummyVisibleLayer = newDoc.artLayers.add();
- newDoc.activeLayer = dummyVisibleLayer
- // Merge the layers.
- newDoc.mergeVisibleLayers()
- // Remove all empty layers.
- for (i = newDoc.layers.length-1; i >=0; i--){
- if (!newDoc.layers[i].visible){
- newDoc.layers[i].remove()
- }
- }
- pngOptions = new PNGSaveOptions()
- pngOptions.compression = 0
- pngOptions.interlaced = false
- savePath = File(originalDoc.path + '/'+'card_category_label_'+id+'_b_on.png');
- newDoc.saveAs(savePath, pngOptions, false, Extension.LOWERCASE)
- newDoc.close()
- }
- function changeTextLayerContent(doc, layerName, newTextString) {
- for (var i = 0, max = doc.layers.length; i < max; i++) {
- var layerRef = doc.layers[i];
- if (layerRef.typename === "ArtLayer") {
- if (layerRef.name === layerName && layerRef.kind === LayerKind.TEXT) {
- layerRef.textItem.contents = newTextString;
- }
- } else {
- changeTextLayerContent(layerRef, layerName, newTextString);
- }
- }
- }
- function ShowTextLayer(doc, layerName) {
- for (var i = 0, max = doc.layers.length; i < max; i++) {
- var layerRef = doc.layers[i];
- if (layerRef.name === layerName) {
- layerRef.visible = true;
- } else {
- //ShowTextLayer(layerRef, layerName);
- }
- }
- }
- function HideTextLayer(doc, layerName) {
- for (var i = 0, max = doc.layers.length; i < max; i++) {
- var layerRef = doc.layers[i];
- if (layerRef.name === layerName) {
- layerRef.visible = false;
- layerRef.visible = false;
- } else {
- //HideTextLayer(layerRef, layerName);
- }
- }
- }
- function HideAll(originalDoc) {
- HideTextLayer(originalDoc, 'Labels');
- HideTextLayer(originalDoc, 'A');
- HideTextLayer(originalDoc, 'B On');
- HideTextLayer(originalDoc, 'B OFF');
- }
- SaveCategories_png()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement