Quantcast
Channel: Adobe Community : Popular Discussions - Photoshop Scripting
Viewing all articles
Browse latest Browse all 12244

Save as PCX

$
0
0

I'm currently work with an old script I found here on the forums. Originally found here: http://forums.adobe.com/thread/488255

 

I've toyed with it a bit but to no avail, since I have no idea what I am doing.

 

Basically I want one of the output options to be .PCX format.

 

 

#target photoshop
function main(){
var LSets = activeDocument.layerSets.length;
var ArtLayers = activeDocument.artLayers.length;
var NoOfLayers = activeDocument.layers.length;
var Back = hasBackground();
var hasTop = false;
var selLayers =getSelectedLayersIdx();
var selGroups=[];if(LSets>0){    for(var s in selLayers){   if(isLayerSet(selLayers[s])) selGroups.push(selLayers[s]);        }    }if(activeDocument.layers[0].typename == 'ArtLayer') hasTop = true;
var win = new Window('dialog','Layer Saver');
g = win.graphics;
var myBrush = g.newBrush(g.BrushType.SOLID_COLOR, [0.99, 0.99, 0.99, 1]);
g.backgroundColor = myBrush;
win.p1= win.add("panel", undefined, undefined, {borderStyle:"black"}); 
win.p1.preferredSize=[500,20];
win.g1 = win.p1.add('group');
win.g1.orientation = "row";
win.title = win.g1.add('statictext',undefined,'Layer Saver');
win.title.alignment="fill";
var g = win.title.graphics;
g.font = ScriptUI.newFont("Georgia","BOLDITALIC",22);
win.g5 =win.p1.add('group');
win.g5.orientation = "column";
win.g5.alignChildren='left';
win.g5.spacing=0;if(LSets == 0){
win.g5.rb1 = win.g5.add('radiobutton',undefined,'Save selected layers');
win.g5.rb2 = win.g5.add('radiobutton',undefined,'Save selected layers along with the top layer');
win.g5.rb3 = win.g5.add('radiobutton',undefined,'Save selected layers along with background layer');
win.g5.rb4 = win.g5.add('radiobutton',undefined,'Save all layers');
win.g5.rb5 = win.g5.add('radiobutton',undefined,'Save all layers along with the top layer');
win.g5.rb6 = win.g5.add('radiobutton',undefined,'Save all layers along with background layer');
win.g5.rb3.enabled=Back;
win.g5.rb6.enabled=Back;
win.g5.rb4.value=true;}else{
win.g5.rb1 = win.g5.add('radiobutton',undefined,'Save selected layerSets');
win.g5.rb2 = win.g5.add('radiobutton',undefined,'Save selected layerSets along with the top layer');
win.g5.rb3 = win.g5.add('radiobutton',undefined,'Save selected layerSets along with background layer');
win.g5.rb4 = win.g5.add('radiobutton',undefined,'Save all layerSets');
win.g5.rb5 = win.g5.add('radiobutton',undefined,'Save all layerSets along with the top layer');
win.g5.rb6 = win.g5.add('radiobutton',undefined,'Save all layerSets along with background layer');
win.g5.rb3.enabled=Back;
win.g5.rb6.enabled=Back;
win.g5.rb2.enabled=hasTop;
win.g5.rb5.enabled=hasTop;if(selGroups.length <1){    win.g5.rb1.enabled=false;    win.g5.rb2.enabled=false;    win.g5.rb3.enabled=false;    }
win.g5.rb4.value=true;    }
win.p2 = win.add("panel", undefined, undefined, {borderStyle:"black"});
win.p2.preferredSize=[500,20];
win.p2.st1 = win.p2.add('statictext',undefined,'Output details');
win.p2.st1.graphics.font = ScriptUI.newFont("Tahoma", "Bold", 18);
win.g10 =win.p2.add('group');
win.g10.orientation = "row";
win.g10.alignment='left';
win.g10.et1 = win.g10.add('edittext');
win.g10.et1.preferredSize=[350,20];
win.g10.bu1 = win.g10.add('button',undefined,'Select Folder');
win.g10.bu1.onClick=function(){
var Folder1 = Folder(app.activeDocument.path);
outputFolder = Folder.selectDialog("Please select the output folder",Folder1); if(outputFolder !=null){  win.g10.et1.text =  decodeURI(outputFolder.fsName);   }}
win.g12 =win.p2.add('group');
win.g12.orientation = "row";
win.g12.alignment='left';
win.g12.cb1 = win.g12.add('checkbox',undefined,'Merge Visible Layers?');
win.g12.cb2 = win.g12.add('checkbox',undefined,'Trim Layer');
win.g15 =win.p2.add('group');
win.g15.orientation = "row";
win.g15.alignment='left';
var Options= ["Layer/Group Name","FileName + Sequence No.","FileName + Layer/Group Name ","User Defined with Sequence No."];
win.g15.st1 = win.g15.add('statictext',undefined,'Save Options..');
win.g15.dd1 = win.g15.add('dropdownlist',undefined,Options);
win.g15.dd1.selection=0;
win.g15.et1 = win.g15.add('edittext');
win.g15.et1.preferredSize=[150,20];
win.g15.et1.hide();
win.g15.dd1.onChange=function(){  if(this.selection.index==3){      win.g15.et1.show();      }else{          win.g15.et1.hide();          }    }
win.g18 =win.p2.add('group');
win.g18.orientation = "row";
win.g18.st1 = win.g18.add('statictext',undefined,'Save as :');
var Types = ["PNG","PCX","PSD","PDF","TIF","JPG"];
win.g18.dd1 = win.g18.add('dropdownlist',undefined,Types);
win.g18.dd1.selection = 0;
win.g18.alignment='left';
win.g20 =win.p2.add('group');
win.g20.orientation = "row";
win.g20.bu1 = win.g20.add('button',undefined,'Process');
win.g20.bu1.preferredSize=[200,35];
win.g20.bu2 = win.g20.add('button',undefined,'Cancel');
win.g20.bu2.preferredSize=[200,35];
win.g20.bu1.onClick=function(){    if(win.g10.et1.text == ''){        alert("No Output Folder has been Selected!");        return;        }    if(win.g15.dd1.selection.index==3){        if(win.g15.et1.text ==''){            alert("No FileName Has Been Entered!");            return;            }        }    win.close(1);
Process();}
win.center();
win.show();
function Process(){if(LSets == 0){//Process layers onlyif(win.g5.rb1.value){//Save selected layersfor(var b in selLayers){    selectLayerByIndex(Number(selLayers[b]));     var lName = activeDocument.activeLayer.name;    var saveFile= File(outputFolder+ "/" + getName(b,lName));    dupLayers();    if(win.g12.cb1.value){        try{activeDocument.mergeVisibleLayers();}catch(e){}        }     if(win.g12.cb2.value){         try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}         }    SaveDOC(saveFile);    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);    }    }//End Save selected layersif(win.g5.rb2.value){//Save selected layers along with the top layerfor(var b in selLayers){    selectLayerByIndex(Number(selLayers[b]));     var lName = activeDocument.activeLayer.name;    activeDocument.activeLayer= activeDocument.layers[0];    selectLayerByIndex(Number(selLayers[b]),true);    var saveFile= File(outputFolder+ "/" + getName(b,lName));    dupLayers();    if(win.g12.cb1.value){        try{activeDocument.mergeVisibleLayers();}catch(e){}        }    if(win.g12.cb2.value){         try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}         }    SaveDOC(saveFile);    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);    }    }//End Save selected layers along with the top layerif(win.g5.rb3.value){//Save selected layers along with background layer    for(var b in selLayers){    selectLayerByIndex(Number(selLayers[b]));     var lName = activeDocument.activeLayer.name;    activeDocument.activeLayer = activeDocument.layers[activeDocument.layers.length-1];    selectLayerByIndex(Number(selLayers[b]),true);    var saveFile= File(outputFolder+ "/" + getName(b,lName));    dupLayers();        if(win.g12.cb1.value){        try{activeDocument.mergeVisibleLayers();}catch(e){}        }    if(win.g12.cb2.value){         try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}         }    SaveDOC(saveFile);    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);    }    }//End Save selected layers along with background layerif(win.g5.rb4.value){//Save all layers
selectAllLayers();
selLayers =getSelectedLayersIdx();for(var b in selLayers){     selectLayerByIndex(Number(selLayers[b]));     var lName = activeDocument.activeLayer.name;    var saveFile= File(outputFolder+ "/" + getName(b,lName));    dupLayers();        if(win.g12.cb1.value){        try{activeDocument.mergeVisibleLayers();}catch(e){}        }    if(win.g12.cb2.value){         try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}         }    SaveDOC(saveFile);    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);     }    }//End Save all layersif(win.g5.rb5.value){//Save all layers along with the top layer
selectAllLayers(1);
selLayers =getSelectedLayersIdx();for(var b in selLayers){    selectLayerByIndex(Number(selLayers[b]));     var lName = activeDocument.activeLayer.name;    activeDocument.activeLayer = activeDocument.layers[0];    selectLayerByIndex(Number(selLayers[b]),true);    var saveFile= File(outputFolder+ "/" + getName(b,lName));    dupLayers();        if(win.g12.cb1.value){        try{activeDocument.mergeVisibleLayers();}catch(e){}        }    if(win.g12.cb2.value){         try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}         }    SaveDOC(saveFile);    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);    }    }//End Save all layers along with the top layerif(win.g5.rb6.value){//Save all layers along with background layer
selectAllLayers();
selLayers =getSelectedLayersIdx();    for(var b in selLayers){    selectLayerByIndex(Number(selLayers[b]));     var lName = activeDocument.activeLayer.name;    activeDocument.activeLayer = activeDocument.layers[activeDocument.layers.length-1];    selectLayerByIndex(Number(selLayers[b]),true);    var saveFile= File(outputFolder+ "/" + getName(b,lName));    dupLayers();        if(win.g12.cb1.value){        try{activeDocument.mergeVisibleLayers();}catch(e){}        }    if(win.g12.cb2.value){         try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}         }    SaveDOC(saveFile);    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);    }    }//End Save all layers along with background layer    }else{//Process LayerSets Onlyif(win.g5.rb1.value){//Save selected layerSets    for(var g in selGroups){        selectLayerByIndex(Number(selGroups[g]));        var lName = activeDocument.activeLayer.name;        var saveFile= File(outputFolder+ "/" + getName(g,lName));        dupLayers();            if(win.g12.cb1.value){        try{activeDocument.mergeVisibleLayers();}catch(e){}        }    if(win.g12.cb2.value){         try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}         }    SaveDOC(saveFile);    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);        }   }//End Save selected layerSetsif(win.g5.rb2.value){//Save selected layerSets along with the top layer    for(var g in selGroups){        selectLayerByIndex(Number(selGroups[g]));     var lName = activeDocument.activeLayer.name;    activeDocument.activeLayer= activeDocument.layers[0];    selectLayerByIndex(Number(selGroups[g]),true);    var saveFile= File(outputFolder+ "/" + getName(g,lName));    dupLayers();        if(win.g12.cb1.value){        try{activeDocument.mergeVisibleLayers();}catch(e){}        }    if(win.g12.cb2.value){         try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}         }    SaveDOC(saveFile);    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);        }    }//End Save selected layerSets along with the top layerif(win.g5.rb3.value){//Save selected layerSets along with background layer    for(var g in selGroups){    selectLayerByIndex(Number(selGroups[g]));     var lName = activeDocument.activeLayer.name;    activeDocument.activeLayer = activeDocument.layers[activeDocument.layers.length-1];    selectLayerByIndex(Number(selGroups[g]),true);    var saveFile= File(outputFolder+ "/" + getName(g,lName));    dupLayers();        if(win.g12.cb1.value){        try{activeDocument.mergeVisibleLayers();}catch(e){}        }    if(win.g12.cb2.value){         try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}         }    SaveDOC(saveFile);    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);    }    }//End Save selected layerSets along with background layerif(win.g5.rb4.value){//Save all layerSets    for(var g =0;g<LSets;g++){         activeDocument.activeLayer = activeDocument.layerSets[g];         var lName = activeDocument.activeLayer.name;         var saveFile= File(outputFolder+ "/" + getName(g,lName));    dupLayers();        if(win.g12.cb1.value){        try{activeDocument.mergeVisibleLayers();}catch(e){}        }    if(win.g12.cb2.value){         try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}         }    SaveDOC(saveFile);    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);        }    }//End Save all layerSetsif(win.g5.rb5.value){//Save all layerSets along with the top layer    activeDocument.activeLayer = activeDocument.layers[0];    var TopIDX =getSelectedLayersIdx();     for(var g =0;g<LSets;g++){         activeDocument.activeLayer = activeDocument.layerSets[g];         var lName = activeDocument.activeLayer.name;         selectLayerByIndex(Number(TopIDX[0]),true);         var saveFile= File(outputFolder+ "/" + getName(g,lName));    dupLayers();        if(win.g12.cb1.value){        try{activeDocument.mergeVisibleLayers();}catch(e){}        }    if(win.g12.cb2.value){         try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}         }    SaveDOC(saveFile);    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);        }    }//End Save all layerSets along with the top layerif(win.g5.rb6.value){//Save all layerSets along with background layer         for(var g =0;g<LSets;g++){         activeDocument.activeLayer = activeDocument.layerSets[g];         var lName = activeDocument.activeLayer.name;         selectLayerByIndex(0,true);         var saveFile= File(outputFolder+ "/" + getName(g,lName));    dupLayers();        if(win.g12.cb1.value){        try{activeDocument.mergeVisibleLayers();}catch(e){}        }    if(win.g12.cb2.value){         try{activeDocument.trim(TrimType.TRANSPARENT,true,true,true,true);}catch(e){}         }    SaveDOC(saveFile);    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);        }    }//End Save all layerSets along with background layer        }}
function getName(seq,lName){
seq = zeroPad((Number(seq)+1), 3);
 var dName = decodeURI(activeDocument.name).replace(/\.[^\.]+$/, '');
var Name ='';switch (Number(win.g15.dd1.selection.index)){    case 0: Name += lName; break;    case 1: Name += dName +"-"+seq; break;    case 2: Name += dName +"-"+ lName; break;    case 3: Name += win.g15.et1.text + "-"+seq; break;    default :break;    }return Name;    }
function SaveDOC(saveFile){    switch(Number(win.g18.dd1.selection.index)){        case 0 : SavePNG(File(saveFile+".png")); break;        case 1 : SavePCX(File(saveFile+".pcx")); break;        case 2:  SavePSD(File(saveFile+".psd")); break;        case 3:  SavePDF(File(saveFile+".pdf")); break;        case 4:  SaveTIFF(File(saveFile+".tif")); break;        case 5:  SaveJPG(File(saveFile+".jpg"),12); break;        default : break;        }    }}
main();
function hasBackground() {   var ref = new ActionReference();    ref.putProperty( charIDToTypeID("Prpr"), charIDToTypeID( "Bckg" ));    ref.putEnumerated(charIDToTypeID( "Lyr " ),charIDToTypeID( "Ordn" ),charIDToTypeID( "Back" ));   var desc =  executeActionGet(ref);    var res = desc.getBoolean(charIDToTypeID( "Bckg" ));    return res    }
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 isLayerSet(idx) {            var ref = new ActionReference();    ref.putIndex(1283027488, idx);    var desc =  executeActionGet(ref);    var type = desc.getEnumerationValue(stringIDToTypeID("layerSection"));    var res = typeIDToStringID(type);    if(res == 'layerSectionStart') returntrue;       returnfalse;   }
function dupLayers() {    var desc143 = new ActionDescriptor();        var ref73 = new ActionReference();        ref73.putClass( charIDToTypeID('Dcmn') );    desc143.putReference( charIDToTypeID('null'), ref73 );    desc143.putString( charIDToTypeID('Nm  '), activeDocument.activeLayer.name );        var ref74 = new ActionReference();        ref74.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );    desc143.putReference( charIDToTypeID('Usng'), ref74 );    executeAction( charIDToTypeID('Mk  '), desc143, DialogModes.NO );};
function selectLayerByIndex(index,add){
 add = (add == undefined)  ? add = false : add;
 var ref = new ActionReference();    ref.putIndex(charIDToTypeID("Lyr "), index);    var desc = new ActionDescriptor();    desc.putReference(charIDToTypeID("null"), ref );       if(add) desc.putEnumerated( stringIDToTypeID( "selectionModifier" ), stringIDToTypeID( "selectionModifierType" ), stringIDToTypeID( "addToSelection" ) );       desc.putBoolean( charIDToTypeID( "MkVs" ), false );    try{    executeAction(charIDToTypeID("slct"), desc, DialogModes.NO );}catch(e){}};
function selectAllLayers(layer) {//does not select background layerif(layer == undefined) layer = 0;
activeDocument.activeLayer = activeDocument.layers[activeDocument.layers.length-1];if(activeDocument.activeLayer.isBackgroundLayer) 
activeDocument.activeLayer = activeDocument.layers[activeDocument.layers.length-2];
var BL = activeDocument.activeLayer.name;
activeDocument.activeLayer = activeDocument.layers[layer];    var desc5 = new ActionDescriptor();        var ref3 = new ActionReference();        ref3.putName( charIDToTypeID('Lyr '), BL);    desc5.putReference( charIDToTypeID('null'), ref3 );    desc5.putEnumerated( stringIDToTypeID('selectionModifier'), stringIDToTypeID('selectionModifierType'), stringIDToTypeID('addToSelectionContinuous') );    desc5.putBoolean( charIDToTypeID('MkVs'), false );    executeAction( charIDToTypeID('slct'), desc5, DialogModes.NO );};
function zeroPad(n, s) {   n = n.toString();    while (n.length < s)  n = '0' + n;    return n; }
function SavePNG(saveFile){
pngSaveOptions = new PNGSaveOptions(); 
activeDocument.saveAs(saveFile, pngSaveOptions, true, Extension.LOWERCASE); }
function SavePCX(saveFile){
pcxSaveOptions = new PCXSaveOptions(); 
activeDocument.saveAs(saveFile, pcxSaveOptions, true, Extension.LOWERCASE); }
function SaveTIFF(saveFile){
tiffSaveOptions = new TiffSaveOptions(); 
tiffSaveOptions.embedColorProfile = true; 
tiffSaveOptions.alphaChannels = true; 
tiffSaveOptions.layers = true;
tiffSaveOptions.imageCompression = TIFFEncoding.TIFFLZW; 
activeDocument.saveAs(saveFile, tiffSaveOptions, true, Extension.LOWERCASE); }
function SavePSD(saveFile){
psdSaveOptions = new PhotoshopSaveOptions(); 
psdSaveOptions.embedColorProfile = true; 
psdSaveOptions.alphaChannels = true;  
activeDocument.saveAs(saveFile, psdSaveOptions, true, Extension.LOWERCASE); }
function SavePDF(saveFile){
pdfSaveOptions = new PDFSaveOptions(); 
activeDocument.saveAs(saveFile, pdfSaveOptions, true, Extension.LOWERCASE); }
function SaveJPG(saveFile, jpegQuality){
jpgSaveOptions = new JPEGSaveOptions();
jpgSaveOptions.embedColorProfile = true;
jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
jpgSaveOptions.matte = MatteType.NONE;
jpgSaveOptions.quality = jpegQuality; //1-12
activeDocument.saveAs(saveFile, jpgSaveOptions, true,Extension.LOWERCASE);}

 

I purely guessed that this was the line of script to save as a PCX file but it didn't work upon execution. It isolates a group to save but then just stops.

 

function SavePCX(saveFile){

pcxSaveOptions = new PCXSaveOptions();

activeDocument.saveAs(saveFile, pcxSaveOptions, true, Extension.LOWERCASE);

}

 

I've been looking everywhere for an answer, but it seems like not one has ever had to have a script like this. I'm running CS6 of that helps.


Viewing all articles
Browse latest Browse all 12244

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>