2017-07-13 3 views
0

現在、イメージを作成していて、現在のイメージの後ろに塗りつぶしレイヤーを作成する必要があります。現在、新しいレイヤーが画像の上にあり、白いファイルが表示されます。この新しい白いレイヤーは最後のレイヤーである必要があります。そのため、イメージファイルはフィルレイヤーの上に置くことができます。Photoshop Script - イメージの後ろに新しい塗りつぶしレイヤーを作成します。

コードは

var NoImages = File.openDialog("Select your logo file", false); 

if (NoImages !== null) { 
    var doc = open(NoImages, OpenDocumentType.PNG.JPEG); // Open PNG file 

    if (doc == null) { 
     throw "Something is wrong with the file."; 
    } 

    var startState = doc.activeHistoryState;  // save for undo 
    var initialPrefs = app.preferences.rulerUnits; // will restore at end 
    app.preferences.rulerUnits = Units.PIXELS;  // use pixels 

    // Folder selection dialog 
    var destFolder = Folder.selectDialog("Choose an output folder"); 

    if (destFolder == null) { 
     // User canceled, just exit 
     throw ""; 
    } 

    // Save icons in PNG using Save for Web. 
    var sfw = new ExportOptionsSaveForWeb(); 
    sfw.format = SaveDocumentType.PNG; 
    sfw.PNG8 = false; // use PNG-24 
    sfw.transparency = true; 
    doc.info = null; // delete metadata 

    var no_images = [ 
     {"name": "no-image-1-1", "width":1170, "height":1170}, 
     {"name": "no-image-2-3", "width":779, "height":1170}, 
     {"name": "no-image-3-2", "width":1170, "height":779}, 
     {"name": "no-image-3-4", "width":879, "height":1170}, 
     {"name": "no-image-4-3", "width":1170, "height":879}, 
     {"name": "no-image-7-2", "width":1170, "height":334}, 
     {"name": "no-image-9-3", "width":1170, "height":391}, 
     {"name": "no-image-11-5", "width":1170, "height":532}, 
     {"name": "no-image-16-9", "width":1170, "height":658} 
    ]; 

    var no_image; 
    for (i = 0; i < no_images.length; i++) { 
     no_image = no_images[i]; 
     doc.resizeCanvas(no_image.width, no_image.height, // width, height 
     null, ResampleMethod.BICUBICSHARPER); 

     var layerRef = app.activeDocument.artLayers.add(); 
     layerRef.name = "fill"; 
     var myColor = new SolidColor(); 
     myColor.rgb.red = 255; 
     myColor.rgb.green = 255; 
     myColor.rgb.blue = 255; 
     activeDocument.selection.fill(myColor); 

     var destFileName = no_image.name + ".png"; 
     doc.exportDocument(new File(destFolder + "/" + destFileName), ExportType.SAVEFORWEB, sfw); 
     doc.activeHistoryState = startState; // undo resize 
    } 

alert("No Images created!"); 

} 
+0

現在のアクティブなレイヤーと塗りつぶしレイヤーを入れ替えるだけで済みませんか? –

答えて

0

下回っているこのあなたが行うために探しているだろうか?背景レイヤーを複製し、塗りつぶし色で背景をターゲットにしますか?

var docRef = app.activeDocument; 

var layerRef = docRef.layers.getByName ("Background").duplicate(); //duplicates the background layer 
layerRef.name = "logo"; //renames the duplicated layer. 

docRef.activeLayer = docRef.layers.getByName ("Background");//selects the Background layer 

var myColor = new SolidColor(); 
myColor.rgb.red = 255; 
myColor.rgb.green = 255; 
myColor.rgb.blue = 255; 

activeDocument.selection.fill(myColor); //fills background layer with white. 
関連する問題