Create Icon Images for your App - by using AppleScript

From Wurst-Wasser.net
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

If you made your own Apple iOS or Mac OS X app, you know how to create iconsets. Probably too good, since you've done the same thing over and over again. Here's the lazy man's solution:

(* Script for creating App Icon Images:

icon_16x16.png
icon_16x16@2x.png
icon_32x32.png
icon_32x32@2x.png
icon_128x128.png
icon_128x128@2x.png
icon_256x256.png
icon_256x256@2x.png
icon_512x512.png
icon_512x512@2x.png

Author: Heiko Kretschmer
License: Feel free to use it, modify it and spread it.
Complaints: > /dev/null 2>&1
Praises: Contact
*)

on run
	
	try
		(* Let the user choose a original file to down-size and a folder where the new files are saved *)
		tell application "Finder"
			activate
			set fileOriginal to (choose file with prompt "Please choose the original image file:" without multiple selections allowed) as string
			
			set folderIconFiles to (choose folder with prompt "Please choose the folder to save the newly created icon-images into:" without multiple selections allowed) as string
		end tell
		
		tell application "Adobe Photoshop CS5"
			activate
			open file fileOriginal
		end tell
		
		(* Resize the current document and save it *)
		#set pathToDesktop to path to the desktop as text
		tell me to resizeAndSave(folderIconFiles, "icon_", 512, "x", 512, "@", 2, "x.png")
		tell me to resizeAndSave(folderIconFiles, "icon_", 512, "x", 512, "", 1, ".png")
		tell me to resizeAndSave(folderIconFiles, "icon_", 256, "x", 256, "@", 2, "x.png")
		tell me to resizeAndSave(folderIconFiles, "icon_", 256, "x", 256, "", 1, ".png")
		tell me to resizeAndSave(folderIconFiles, "icon_", 128, "x", 128, "@", 2, "x.png")
		tell me to resizeAndSave(folderIconFiles, "icon_", 128, "x", 128, "", 1, ".png")
		tell me to resizeAndSave(folderIconFiles, "icon_", 32, "x", 32, "@", 2, "x.png")
		tell me to resizeAndSave(folderIconFiles, "icon_", 32, "x", 32, "", 1, ".png")
		tell me to resizeAndSave(folderIconFiles, "icon_", 16, "x", 16, "@", 2, "x.png")
		tell me to resizeAndSave(folderIconFiles, "icon_", 16, "x", 16, "", 1, ".png")
		
		(* Close the original file *)
		tell application "Adobe Photoshop CS5"
			close current document saving no
		end tell
		
	on error (e)
		log "Error: " & e
	end try
	
end run


on resizeAndSave(path, prefix, sizex, dingsda, sizey, dingsbums, factor, suffix)
	
	if (factor as integer) = 1 then
		(* Like this: icon_16x16@2x.png *)
		set newFileName to prefix & (sizex as text) & dingsda & (sizey as text) & suffix
	else if (factor as integer) = 2 then
		(* Like this: icon_16x16@2x.png *)
		set newFileName to prefix & (sizex as text) & dingsda & (sizey as text) & dingsbums & factor & suffix
	else
		display dialog "Invalid factor." buttons {"WTF?"}
		return
	end if
	set filePath to path & ":" & newFileName
	
	
	tell application "Adobe Photoshop CS5"
		
		tell current document
			
			resize image width (sizex * factor) height (sizey * factor) resample method bicubic
			save in file filePath as PNG copying yes
			
		end tell
		
	end tell
	
end resizeAndSave

Tags: Icon.iconset, AppIcon, Application Icon, Cocoa, icns, icons, Icon