SOURCE

// Photoshop批量调整PNG尺寸脚本 (192x192)
// 保存为 .jsx 文件,通过 Photoshop > 文件 > 脚本 > 浏览 运行

#target photoshop

try {
    // 选择源文件夹
    var inputFolder = Folder.selectDialog("请选择包含PNG图片的文件夹");
    if (!inputFolder) throw "未选择文件夹";

    // 创建输出文件夹
    var outputFolder = new Folder(inputFolder.fsName + "/resized_192x192");
    if (!outputFolder.exists) outputFolder.create();

    // 获取所有PNG文件
    var files = inputFolder.getFiles("*.png");
    if (files.length === 0) throw "未找到PNG文件";

    // 保存原始单位设置
    var originalRulerUnits = preferences.rulerUnits;
    preferences.rulerUnits = Units.PIXELS;

    // 处理每张图片
    for (var i = 0; i < files.length; i++) {
        var file = files[i];
        if (file instanceof File) {
            processImage(file, outputFolder);
        }
    }

    // 恢复原始单位设置
    preferences.rulerUnits = originalRulerUnits;
    
    alert("处理完成!\n共处理: " + files.length + " 个文件\n输出位置: " + outputFolder.fsName);
} catch (e) {
    alert("错误: " + e);
}

function processImage(file, outputFolder) {
    // 打开图片
    var doc = open(file);
    doc.activeLayer = doc.layers[0]; // 确保选中基础图层
    
    try {
        // 检查是否为1:1比例
        if (doc.width.value !== doc.height.value) {
            throw file.name + " 不是1:1比例图片";
        }
        
        // 调整尺寸为192x192
        doc.resizeImage(
            192, // 宽度 (像素)
            192, // 高度 (像素)
            null, // 分辨率 (保持原值)
            ResampleMethod.BICUBICSHARPER // 最佳缩小的插值方法
        );
        
        // 保存设置
        var pngOptions = new PNGSaveOptions();
        pngOptions.compression = 9; // 最高压缩质量
        pngOptions.interlaced = false;
        
        // 构建输出路径
        var outputFile = new File(outputFolder.fsName + "/" + file.name);
        
        // 保存为PNG
        doc.saveAs(outputFile, pngOptions, true);
        
    } catch (e) {
        alert("处理失败: " + file.name + "\n原因: " + e);
    } finally {
        // 确保关闭文档
        doc.close(SaveOptions.DONOTSAVECHANGES);
    }
}
console 命令行工具 X clear

                    
>
console