Last active
August 29, 2015 14:01
-
-
Save mixdesign/d58b998f429d94bc38db to your computer and use it in GitHub Desktop.
Create OSX icons photoshop plugin.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
try | |
{ | |
// Prompt user to select iTunesArtwork file. Clicking "Cancel" returns null. | |
var iTunesArtwork = File.openDialog("Select a sqaure PNG file that is at least 1024x1024.", "*.png", false); | |
if (iTunesArtwork !== null) | |
{ | |
var doc = open(iTunesArtwork, OpenDocumentType.PNG); | |
if (doc == null) | |
{ | |
throw "Something is wrong with the file. Make sure it's a valid PNG file."; | |
} | |
var startState = doc.activeHistoryState; // save for undo | |
var initialPrefs = app.preferences.rulerUnits; // will restore at end | |
app.preferences.rulerUnits = Units.PIXELS; // use pixels | |
if (doc.width != doc.height) | |
{ | |
throw "Image is not square"; | |
} | |
else if ((doc.width < 1024) && (doc.height < 1024)) | |
{ | |
throw "Image is too small! Image must be at least 1024x1024 pixels."; | |
} | |
else if (doc.width < 1024) | |
{ | |
throw "Image width is too small! Image width must be at least 1024 pixels."; | |
} | |
else if (doc.height < 1024) | |
{ | |
throw "Image height is too small! Image height must be at least 1024 pixels."; | |
} | |
// Folder selection dialog | |
var destFolder = Folder.selectDialog( "Choose an output folder"); | |
if (destFolder == null) | |
{ | |
// User canceled, just exit | |
throw ""; | |
} | |
// Save icons in PNG using Save for Web. | |
var sfw = new ExportOptionsSaveForWeb(); | |
sfw.format = SaveDocumentType.PNG; | |
sfw.PNG8 = false; // use PNG-24 | |
sfw.transparency = true; | |
doc.info = null; // delete metadata | |
var icons = [ | |
{"name": "icon_512x512", "size":512}, | |
{"name": "icon_512x512@2x", "size":1024}, | |
{"name": "icon_256x256", "size":256}, | |
{"name": "icon_256x256@2x", "size":512}, | |
{"name": "icon_128x128", "size":128}, | |
{"name": "icon_128x128@2x", "size":256}, | |
{"name": "icon_32x32", "size":32}, | |
{"name": "icon_32x32@2x", "size":64}, | |
{"name": "icon_16x16", "size":16}, | |
{"name": "icon_16x16@2x", "size":32}, | |
]; | |
var icon; | |
for (i = 0; i < icons.length; i++) | |
{ | |
icon = icons[i]; | |
doc.resizeImage(icon.size, icon.size, // width, height | |
null, ResampleMethod.BICUBICSHARPER); | |
var destFileName = icon.name + ".png"; | |
doc.exportDocument(new File(destFolder + "/" + destFileName), ExportType.SAVEFORWEB, sfw); | |
doc.activeHistoryState = startState; // undo resize | |
} | |
alert("OSX Icons created!"); | |
} | |
} | |
catch (exception) | |
{ | |
// Show degbug message and then quit | |
if ((exception != null) && (exception != "")) | |
alert(exception); | |
} | |
finally | |
{ | |
if (doc != null) | |
doc.close(SaveOptions.DONOTSAVECHANGES); | |
app.preferences.rulerUnits = initialPrefs; // restore prefs | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment