Skip to content

Instantly share code, notes, and snippets.

@Maff-
Created August 10, 2015 22:55
Show Gist options
  • Save Maff-/d53b4a556e4b7af5a527 to your computer and use it in GitHub Desktop.
Save Maff-/d53b4a556e4b7af5a527 to your computer and use it in GitHub Desktop.
#target illustrator
function main()
{
var sourceDir,
destDir,
files,
sourceDoc,
sizes;
sourceDir = Folder.selectDialog( 'Select the import directory.', '/temp/wame/bfb/src' );
destDir = Folder.selectDialog( 'Select the export directory.', sourceDir.path + '/out' );
sizes = prompt('What sizes do you want? comma separated', '16, 24, 32', 'What sizes?').replace(/ /g, '').split(',');
if (sizes.length == 0) {
alert("We want them sizes!");
return;
}
files = sourceDir.getFiles("*.ai");
if (files.length == 0) {
alert("No .ai files in source dir... so nothing to do");
return;
}
for (var s=0; s < sizes.length; s++) {
var dir = new Folder(destDir + '/' + sizes[s]);
if (!dir.exists) {
if (!dir.create()) {
alert('Error creating output folder "' + dir + '"');
return;
}
$.writeln('Created output folder "' + dir + '"');
}
}
var file;
for (var i=0; i < files.length; i++) {
file = files[i];
var doc = app.open(file, DocumentColorSpace.RGB);
$.writeln('Processing ' + doc.fullName);
removeBackgroundLayer(doc);
for (var s=0; s < sizes.length; s++) {
exportPng(doc, destDir, sizes[s]);
}
doc.close(SaveOptions.DONOTSAVECHANGES);
}
}
function removeBackgroundLayer(doc)
{
var layerCount = doc.layers.length;
// Loop through layers from the back, to preserve index
// of remaining layers when we remove one
for (var ii = layerCount - 1; ii >= 0; ii-- ) {
layer = doc.layers[ii];
var layerName = new String( layer.name );
if ( layerName.indexOf("background") == 0 ) {
layer.locked = false;
layer.remove();
$.writeln('Removed background layer (' + ii + ')');
}
}
}
function exportPng(doc, destDir, size)
{
var outFile = new File(destDir + '/' + size + '/' + doc.fullName.name.replace('.ai', '.png'));
var exportOptions = new ExportOptionsPNG24;
exportOptions.artBoardClipping = true;
exportOptions.horizontalScale = size;
exportOptions.verticalScale = size;
$.writeln('Exporting ' + size + 'x' + size + ' PNG');
doc.exportFile(outFile, ExportType.PNG24, exportOptions);
}
main();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment