Javascript Photoshop脚本-在图像后面创建新填充层

Javascript Photoshop脚本-在图像后面创建新填充层,javascript,photoshop,jsx,photoshop-script,Javascript,Photoshop,Jsx,Photoshop Script,我目前有一个问题,我正在创建一些图像,需要在当前图像后面创建一个填充层。目前,新层位于图像的顶部,这给了我一个白色文件。这个新的白色层必须是最后一层,这样图像文件才能位于填充层之上 代码如下 var NoImages = File.openDialog("Select your logo file", false); if (NoImages !== null) { var doc = open(NoImages, OpenDocumentType.PNG.JPEG); // Ope

我目前有一个问题,我正在创建一些图像,需要在当前图像后面创建一个填充层。目前,新层位于图像的顶部,这给了我一个白色文件。这个新的白色层必须是最后一层,这样图像文件才能位于填充层之上

代码如下

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

}
var NoImages=File.openDialog(“选择您的徽标文件”,false);
如果(NoImages!==null){
var doc=open(NoImages,OpenDocumentType.PNG.JPEG);//打开PNG文件
如果(doc==null){
抛出“文件有问题。”;
}
var startState=doc.activeHistoryState;//保存以撤消
var initialPrefs=app.preferences.rulerUnits;//将在结束时恢复
app.preferences.rulerUnits=Units.PIXELS;//使用像素
//文件夹选择对话框
var destFolder=Folder.selectDialog(“选择输出文件夹”);
如果(destFolder==null){
//用户已取消,请退出
抛出“;
}
//使用Save for Web以PNG格式保存图标。
var sfw=新的导出选项saveforweb();
sfw.format=SaveDocumentType.PNG;
sfw.PNG8=false;//使用PNG-24
sfw.transparency=true;
doc.info=null;//删除元数据
var no_图像=[
{“名称”:“no-image-1-1”,“宽度”:1170,“高度”:1170},
{“名称”:“no-image-2-3”,“宽度”:779,“高度”:1170},
{“名称”:“no-image-3-2”,“宽度”:1170,“高度”:779},
{“名称”:“no-image-3-4”,“宽度”:879,“高度”:1170},
{“名称”:“no-image-4-3”,“宽度”:1170,“高度”:879},
{“名称”:“no-image-7-2”,“宽度”:1170,“高度”:334},
{“名称”:“no-image-9-3”,“宽度”:1170,“高度”:391},
{“名称”:“no-image-11-5”,“宽度”:1170,“高度”:532},
{“名称”:“no-image-16-9”,“宽度”:1170,“高度”:658}
];
var-no_图像;
对于(i=0;i
这就是你想要做的吗?复制背景层,然后使用填充颜色定位背景

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.

这就是你想要做的吗?复制背景层,然后使用填充颜色定位背景

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.

是否可以将当前活动层与填充层交换?是否可以将当前活动层与填充层交换?