简体   繁体   中英

add another blend mode (Multiply) on script

I have an existing automation script but I need to change it very slightly to add another blend mode (Multiply). It wont work. So I will attach the script and can you please edit to make it work. I just need ability to add another blend mode to it,.

 app.displayDialogs = DialogModes.NO; var TemplateFile = File.openDialog ("Please select a template :", "*.psd"); var DesignsFolder = Folder.selectDialog("Please select Designs folder :"); //var TemplateFile =File("/F/Work/Brothel/PSscript_Tshirt/example with darkened layer.psd"); //var DesignsFolder =Folder("/F/Work/Brothel/PSscript_Tshirt/Designs/"); preferences.typeUnits = TypeUnits.PIXELS; preferences.rulerUnits = Units.PIXELS; open(File(TemplateFile)); var DocRef = activeDocument; var Rectangle = DocRef.activeLayer; var Rectangle = DocRef.channels.getByName("PASTE HERE"); var Selection = DocRef.selection.load(Rectangle); var Bound = DocRef.selection.bounds ; PosX = Bound[0]; PosY = Bound[1]; DimX = Bound[2] - Bound[0]; DimY = Bound[3] - Bound[1]; var DesignsList = DesignsFolder.getFiles("*.psd"| "*.jpg"| "*.jpeg"); var Win = new Window('dialog', 'BendMode :'); Win.size = [150,150]; Win.btnPnl = Win.add('panel', undefined, 'Build it'); Win.btnPnl.rb1 = Win.btnPnl.add('radiobutton', undefined, 'Darken'); Win.btnPnl.rb2 = Win.btnPnl.add('radiobutton', undefined, 'Normal'); Win.btnPnl.rb3 = Win.btnPnl.add('radiobutton', undefined, 'Lighten'); Win.btnPnl.rb1.onClick = function() {Win.close(); Exe(1); } Win.btnPnl.rb2.onClick = function() {Win.close(); Exe(2); } Win.btnPnl.rb3.onClick = function() {Win.close(); Exe(3); } Win.show(); function Exe(Val){ for(I=0; I < DesignsList.length ; I++ ){ open(DesignsList[I]); var TempDocRef = activeDocument; var N = TempDocRef.name TempDocRef.resizeImage(DimX,DimY, undefined, undefined); TempDocRef.selection.selectAll(); if(TempDocRef.activeLayer.isBackgroundLayer == true){ TempDocRef.selection.copy(); }else{ TempDocRef.selection.copy(true); } TempDocRef.close(SaveOptions.DONOTSAVECHANGES); PasteANDSave(N); }; function PasteANDSave(N){ DocRef.artLayers.add(); var Selection = DocRef.selection.load(Rectangle); DocRef.paste(); if(Val == 1){ DocRef.activeLayer.blendMode = BlendMode.DARKEN; }else if(Val == 2){ DocRef.activeLayer.blendMode = BlendMode.NORMAL; }else if(Val == 3){ DocRef.activeLayer.blendMode = BlendMode.LIGHTEN; } DocRef.resizeImage("1000px", DocRef.height /(DocRef.width/1050) + "px",undefined, undefined); var JpegOptions = new JPEGSaveOptions(); JpegOptions.quality = 12; DocRef.saveAs ( new File(DesignsFolder + "/result_" + N ), JpegOptions); DocRef.activeHistoryState = DocRef.historyStates[0] ; } } DocRef.close(SaveOptions.DONOTSAVECHANGES); 

What have you tried?

The obvious thing would be to add:

Win.size = [150,20];
Win.btnPnl = Win.add('panel', undefined, 'Build it');


Win.btnPnl.rb1 = Win.btnPnl.add('radiobutton', undefined, 'Darken');
Win.btnPnl.rb2 = Win.btnPnl.add('radiobutton', undefined, 'Normal');
Win.btnPnl.rb3 = Win.btnPnl.add('radiobutton', undefined, 'Lighten');
Win.btnPnl.rb4 = Win.btnPnl.add('radiobutton', undefined, 'Multiply');


   Win.btnPnl.rb1.onClick = function()
    {Win.close();     
     Exe(1);
    }
   Win.btnPnl.rb2.onClick = function()
    {Win.close();     
     Exe(2);
    }
   Win.btnPnl.rb3.onClick = function()
    {Win.close();     
     Exe(3);
    }
   Win.btnPnl.rb4.onClick = function()
    {Win.close();     
     Exe(4);
    }

  Win.show();

and also

    if(Val == 1){
        DocRef.activeLayer.blendMode  = BlendMode.DARKEN;
    }else if(Val == 2){
        DocRef.activeLayer.blendMode  = BlendMode.NORMAL;
    }else if(Val == 3){
        DocRef.activeLayer.blendMode  = BlendMode.LIGHTEN;
    }else if(Val == 4){
        DocRef.activeLayer.blendMode  = BlendMode.MULTIPLY;
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM