Skip to content

Instantly share code, notes, and snippets.

@jschappet
Created March 13, 2015 18:11
Show Gist options
  • Save jschappet/10fe18dc1fe90f395408 to your computer and use it in GitHub Desktop.
Save jschappet/10fe18dc1fe90f395408 to your computer and use it in GitHub Desktop.
/**
* Remixer 1: @herkulano (http://www.herkulano.com)
* Remixer 2: @hotappsfactory (http://www.hotappsfactory.com)
* Thanks to: Niels Bosma (niels.bosma@motorola.com)
*/
var folder = Folder.selectDialog();
var document = app.activeDocument;
var suffix;
var boardSize;
/*
if (document && folder) {
suffix = prompt("Prefix", "") || "";
}
if (document && folder) {
boardSize = prompt("Board Size", "120") || "";
}
*/
if (document && folder) {
var documentName = document.name.replace(".ai","");
saveToRes(29, 1, documentName, "A", documentName + "_Ios", false);
saveToRes(29 , 2, documentName, "A", documentName + "_Ios", false);
saveToRes(29 , 3, documentName, "A", documentName + "_Ios", false);
saveToRes(40,1, documentName, "A", documentName + "_Ios", false);
saveToRes(40 , 2, documentName, "A", documentName + "_Ios", false);
saveToRes(40 , 3, documentName, "A", documentName + "_Ios", false);
saveToRes(57, 1, documentName, "A", documentName + "_Ios", false);
saveToRes(57, 2, documentName, "A", documentName + "_Ios", false);
saveToRes(60 , 2, documentName, "A", documentName + "_Ios", false);
saveToRes(60 , 3, documentName, "A", documentName + "_Ios", false);
saveToRes(50 , 1, documentName, "A", documentName + "_Ios", false);
saveToRes(50 , 2, documentName, "A", documentName + "_Ios", false);
saveToRes(72 , 1, documentName, "A", documentName + "_Ios", false);
saveToRes(72 , 2, documentName, "A", documentName + "_Ios", false);
saveToRes(76 , 1, documentName, "A", documentName + "_Ios", false);
saveToRes(76 , 2, documentName, "A", documentName + "_Ios", false);
saveToRes(120, 1, documentName, "A", documentName + "_Ios", false);
saveToRes(76 , 2, documentName, "A", documentName + "_Ios", false);
//saveToRes(100, documentName, "A", "mdpi_" + documentName, true);
//saveToRes(150, documentName, "A", "hdpi_" + documentName, true);
//saveToRes(225, documentName, "A", "xhdpi_" + documentName, true);
}
/**
* Scale and export file suffixed by densitySuffix, in a specific folder named folderName
*/
function saveToRes(scaleTo, times, preffix, densitySuffix, folderName, lowerCase) {
var i, ab, file, options;
var myFolder = new Folder(folder.absoluteURI + "/" + folderName);
if(!myFolder.exists) myFolder.create();
for (i = document.artboards.length - 1; i >= 0; i--) {
document.artboards.setActiveArtboardIndex(i);
ab = document.artboards[i];
boardSize = ab.artboardRect[1] - ab.artboardRect[0];
var fileName = preffix + ab.name + suffix;
if(lowerCase){
var fileNameLowerCase = "";
for (var j = 0; j < fileName.length; j++) {
if(isUpperCase(fileName.charAt(j))){
if(j > 0){
fileNameLowerCase += "_";
}
fileNameLowerCase += fileName.charAt(j).toLowerCase();
}
else{
fileNameLowerCase += fileName.charAt(j);
}
}
fileName = fileNameLowerCase;
}
if (times == 1) {
timesTxt = "" ;
} else {
timesTxt = "@" + times + "x";
}
file = new File(myFolder.fsName + "/" +
fileName + "_" + densitySuffix + "_" + scaleTo + timesTxt +".png");
options = new ExportOptionsPNG24();
options.antiAliasing = true;
options.transparency = true;
options.artBoardClipping = true;
//alert(" Scale to: " + scaleTo * times / boardSize * 100 ) ;
options.verticalScale = (scaleTo * times / boardSize * 100 );
options.horizontalScale = (scaleTo * times / boardSize * 100);
document.exportFile(file, ExportType.PNG24, options);
}
}
function isUpperCase(myString) {
return (myString == myString.toUpperCase());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment