2016-03-06 19 views
0

我有一個現有的自動化腳本,但我需要稍微改變它以添加另一個混合模式(Multiply)。它不會工作。所以我會附上腳本,你可以編輯,使其工作。 我只需要添加其他混合模式的能力。在腳本上添加另一個混合模式(Multiply)

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);

回答

0

你嘗試過什麼?

最明顯的一點是添加:

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(); 

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; 
    } 
+0

感謝古爾傻瓜,林不知道,如果可能的,但也許是顏色疊加會比倒置更好) 所以例如,如果我想讓它穿上黑色t恤並且圖像是黑色的,那麼腳本會將它反轉爲白色,然後轉到腳本的正常混合部分 謝謝 –