在Illustrator中导出多个不同尺寸的图片

3

我想一次性以不同大小导出我的iOS应用程序图标,而不必为每个尺寸单独操作!在Adobe Illustrator中是否有一种方法可以一次性导出各种不同尺寸的PNG文件?

1个回答

8

我自己找到了答案!

http://www.adobe.com/devnet/illustrator/scripting.html

正如上面链接所述,脚本是一系列命令,告诉Illustrator执行一个或多个任务。

因此,通过使用以下脚本,我能够按照我的要求导出不同大小的多个图像。

#target Illustrator

/**
* export multiple PNG's in different sizes
* @author Alexandros Harvey
*/
// Adapted to export an Illustrator file in various sizes by Alexandros Harvey
// based on how to export images as CSS Layers by CarlosCanto


if (app.documents.length > 0) {
    main();
}
else alert('Cancelled by user');

function main() {
    var document = app.activeDocument;
    var afile = document.fullName;
    var filename = afile.name.split('.')[0];

    var folder = afile.parent.selectDlg("Export as CSS Layers (images only)...");

    if(folder != null)
    { 
        var activeABidx = document.artboards.getActiveArtboardIndex();
        var activeAB = document.artboards[activeABidx]; // get active AB        
        var abBounds = activeAB.artboardRect;// left, top, right, bottom

        var docBounds = document.visibleBounds;
        activeAB.artboardRect = docBounds;

        var options = new ExportOptionsPNG24();
        options.antiAliasing = true;
        options.transparency = true;
        options.artBoardClipping = true;

        var icons = [
            {"name": "Icon-512@2x", "size":1024},
            {"name": "Icon-512",        "size":512},
            {"name": "Icon-60@3x",  "size":180},
            {"name": "Icon-76@2x",  "size":152},
            {"name": "Icon-72@2x",  "size":144},
            {"name": "Icon-60@2x",  "size":120},
            {"name": "Icon-57@2x",  "size":114},
            {"name": "Icon-50@2x",  "size":100},
            {"name": "Icon-40@2x",  "size":80},
            {"name": "Icon-76",         "size":76},
            {"name": "Icon-72",         "size":72},
            {"name": "Icon-60",         "size":60},
            {"name": "Icon-29@2x",  "size":58},
            {"name": "Icon-57",         "size":57},
            {"name": "Icon-50",         "size":50},
            {"name": "Icon-40",         "size":40},
            {"name": "Icon-29",         "size":29}
        ];

        var icon, file;
        for(var i = 0; i < icons.length; i++)
        {
            icon = icons[i]; 

            file = new File(folder.fsName + '/' + icon.name + ".png");

            // My App Icon is originally 1024x1024 so that's why I divide height and width by 1024
            options.horizontalScale = 100 * (icon.size / document.width);
            options.verticalScale = 100 * (icon.size / document.height);

            document.exportFile(file,ExportType.PNG24,options);
        }

        activeAB.artboardRect = abBounds;
    }
}

我希望这篇文章可以帮助需要类似内容的人。
更新:
关于不同的尺寸; 改变图标数组使用高度和宽度而不是大小,例如。
var icons = [{"name": "Icon-512@2x", "height":250, "width":125}, ...]

然后将horizontalScale更改为使用宽度,verticalScale更改为使用高度。我还更改了它,使其使用文档的高度和宽度而不是硬编码的数字。

options.horizontalScale = 100 * (icon.width / document.width);
options.verticalScale = 100 * (icon.height / document.height);

运行脚本: 作者为volleybologist

  1. 将上面的代码复制到编辑器中(例如 Notepad++
  2. 另存为 javascript 文件(.js)
  3. 打开 Illustrator(测试过使用Illustator CC 19.1.0可行)
  4. 在 Illustrator 中,选择 文件 > 脚本 > 其他脚本 ,然后打开你刚保存的 .js 文件
  5. 会弹出一个对话框,找到并选择 .js 文件
  6. 另一个对话框会弹出,要求您选择要导出png文件的位置
  7. 脚本将运行并且图片应该位于所选文件夹中

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接