在Illustrator中导出多个大小的图像

时间:2015-01-21 12:26:03

标签: adobe-illustrator

我想以不同的尺寸导出我的iOS应用程序图标,但无需为每种尺寸进行操作!有没有办法使用Adobe Illustrator,您可以一次性导出各种大小不同的PNG?

1 个答案:

答案 0 :(得分:6)

我自己找到了答案!

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}, ...]

然后更改horizo​​ntalScale以使用width和verticalScale来使用height。我也改变了它,因此它使用文档的高度和宽度而不是硬编码的数字。

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中,转到文件&gt;脚本&gt;其他脚本并打开刚刚保存的.js文件
  5. 将弹出一个对话框,找到并选择.js文件
  6. 将弹出另一个对话框,要求您选择要导出的png的位置
  7. 脚本将运行,图像应位于所选文件夹中