You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求编写Photoshop脚本:按规则导出图层为PNG并适配16倍数尺寸

Photoshop脚本:批量处理图层并导出16倍数尺寸的PNG

以下是符合需求的脚本,它会遍历当前Photoshop文档中的所有可见图层,自动检查图层尺寸是否为16的像素倍数;若不符合则均匀在图层四周补像素(保持图层内容居中),符合则直接导出PNG文件。

// 设置单位为像素,避免单位混乱
preferences.rulerUnits = Units.PIXELS;
var doc = activeDocument;
// 导出路径,可自行修改(注意路径分隔符用/)
var exportPath = "D:/Spine_Assets/Exported_PNGs/";

// 创建导出PNG的配置
var pngOptions = new ExportOptionsPNG24();
pngOptions.transparency = true; // 保留透明通道
pngOptions.interlaced = false;

// 遍历所有可见图层
for (var i = 0; i < doc.layers.length; i++) {
    var layer = doc.layers[i];
    // 跳过隐藏图层
    if (!layer.visible) continue;

    // 获取当前图层的实际尺寸(包含内容的边界框)
    var bounds = layer.bounds;
    var layerWidth = bounds[2] - bounds[0];
    var layerHeight = bounds[3] - bounds[1];

    // 计算需要调整到的16倍数尺寸
    var targetWidth = Math.ceil(layerWidth / 16) * 16;
    var targetHeight = Math.ceil(layerHeight / 16) * 16;

    // 记录原始画布尺寸,用于处理后恢复
    var originalWidth = doc.width;
    var originalHeight = doc.height;

    // 只有当目标尺寸和当前图层尺寸不一致时,才调整画布
    if (targetWidth !== layerWidth || targetHeight !== layerHeight) {
        // 计算需要扩展的像素量,均匀分配到四周
        var offsetX = (targetWidth - layerWidth) / 2;
        var offsetY = (targetHeight - layerHeight) / 2;

        // 调整画布尺寸,锚点设为居中,实现均匀补像素
        doc.resizeCanvas(
            targetWidth,
            targetHeight,
            AnchorPosition.MIDDLECENTER,
            offsetX - bounds[0],
            offsetY - bounds[1]
        );
    }

    // 导出当前图层为PNG
    var exportFile = new File(exportPath + layer.name + ".png");
    doc.exportDocument(exportFile, ExportType.PNG24, pngOptions);

    // 恢复原始画布尺寸,避免影响其他图层
    if (targetWidth !== layerWidth || targetHeight !== layerHeight) {
        doc.resizeCanvas(originalWidth, originalHeight, AnchorPosition.MIDDLECENTER);
    }
}

alert("所有可见图层导出完成!");

关键功能说明

  • 图层遍历:仅处理可见图层,避免导出不需要的内容
  • 均匀补像素:通过计算偏移量,将图层内容保持在画布中心,补的像素均匀分布在上下左右,不会像原始代码那样只往右下扩展
  • 尺寸判断:只有当图层尺寸不是16的倍数时才执行调整,否则直接导出
  • 画布恢复:处理完单个图层后立即恢复文档原始画布尺寸,不影响后续图层的处理
  • 透明通道保留:导出的PNG会保留图层的透明区域,适配Spine的骨骼动画需求

使用注意事项

  1. 运行脚本前,请确保当前Photoshop文档已保存
  2. 修改代码中的exportPath为你实际需要导出的文件夹路径(Windows系统用/作为分隔符,避免转义问题)
  3. 脚本会以图层的名称作为导出PNG的文件名,建议提前整理好图层名称

内容的提问来源于stack exchange,提问作者Plunksville

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:52:20