我想以不同的尺寸导出我的iOS应用程序图标,但无需为每种尺寸进行操作!有没有办法使用Adobe Illustrator,您可以一次性导出各种大小不同的PNG?
答案 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}, ...]
然后更改horizontalScale以使用width和verticalScale来使用height。我也改变了它,因此它使用文档的高度和宽度而不是硬编码的数字。
options.horizontalScale = 100 * (icon.width / document.width);
options.verticalScale = 100 * (icon.height / document.height);
运行脚本: 截至volleybologist