Skip to content

Instantly share code, notes, and snippets.

@coolbluewillem
Created January 13, 2015 12:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save coolbluewillem/345868b50a96094a959d to your computer and use it in GitHub Desktop.
Save coolbluewillem/345868b50a96094a959d to your computer and use it in GitHub Desktop.
Photoshop script (.jsx) resizing icons automatically for Android devices and puts them in different folders (ldpi, mdpi, hdpi, xhdpi, xxhdpi and xxxhdpi)
try
{
var inputFolder = Folder.selectDialog("Select a folder to process");
var fileList = inputFolder.getFiles("*.png");
var initialPrefs = app.preferences.rulerUnits; // will restore at end
app.preferences.rulerUnits = Units.PIXELS; // use pixels
var destFolder = Folder.selectDialog( "Choose an output folder");
var xxxhdpiFolder = new Folder ( destFolder + "/xxxhdpi");
xxxhdpiFolder.create();
var xxhdpiFolder = new Folder ( destFolder + "/xxhdpi");
xxhdpiFolder.create();
var xhdpiFolder = new Folder ( destFolder + "/xhdpi");
xhdpiFolder.create();
var hdpiFolder = new Folder ( destFolder + "/hdpi");
hdpiFolder.create();
var mdpiFolder = new Folder ( destFolder + "/mdpi");
mdpiFolder.create();
var ldpiFolder = new Folder ( destFolder + "/ldpi");
ldpiFolder.create();
var sfw = new ExportOptionsSaveForWeb();
sfw.format = SaveDocumentType.PNG;
sfw.PNG8 = false; // use PNG-24
sfw.transparency = true;
var i, j;
for(i=0; i<fileList.length; i++) {
var doc = open(fileList[i], OpenDocumentType.PNG);
var icons = [
{"name": doc.name, "size":192, "folder": "/xxxhdpi/"},
{"name": doc.name, "size":144, "folder": "/xxhdpi/"},
{"name": doc.name, "size":96, "folder": "/xhdpi/"},
{"name": doc.name, "size":72, "folder": "/hdpi/"},
{"name": doc.name, "size":48, "folder": "/mdpi/"},
{"name": doc.name, "size":36, "folder": "/ldpi/"}
];
var destIcon;
var destFileName;
for (j = 0; j < icons.length; j++)
{
destIcon = icons[j];
doc.resizeImage(destIcon.size, destIcon.size, // width, height
null, ResampleMethod.BICUBICSHARPER);
destFileName = destIcon.name;
doc.exportDocument(new File(destFolder + destIcon.folder + destFileName), ExportType.SAVEFORWEB, sfw);
}
doc.close(SaveOptions.DONOTSAVECHANGES);
}
alert("Android icons created!");
}
catch (exception)
{
if ((exception != null) && (exception != ""))
alert(exception);
}
finally
{
if (doc != null)
doc.close(SaveOptions.DONOTSAVECHANGES);
app.preferences.rulerUnits = initialPrefs;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment