Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to scale iOS app icon for different sizes

With every change to an app icon there is the need to generate the proper icon sizes for Xcode. I've always been looking for an efficient way to generate those icons.

It's obvious that an automated process won't care of pixel fitting or similar details. But a simple AppleScript should do the trick for most of us.

The following screen shows all those sizes needed:

enter image description here

I've gathered different sources and made a simple working script for everyone to share... so here you go – just check my answer below.

like image 437
Daniel Bleisteiner Avatar asked Apr 23 '14 10:04

Daniel Bleisteiner


People also ask

Can you change icon size iPad Apps?

Here's how to change the app icon size and make app icons bigger or smaller on the iPad Home Screen: 1) Open Settings on your iPad and tap Display & Brightness. 2) Under App Icon Size, choose: More: It makes the app icons a bit smaller in order to fit more of them on the Home Screen.


3 Answers

Here is a simple AppleScript for all of you... feel free to adapt and use it:

on run
    set f to choose file
    processTheFiles({f})
end run

on open theFiles
    processTheFiles(theFiles)
end open

on processTheFiles(theFiles)
    tell application "Image Events" to launch
    repeat with f in theFiles
        set thisFile to f as text

        -- iPhone       
        scaleAndSave(f, thisFile, 29 * 1, "-iPhone-29")
        scaleAndSave(f, thisFile, 29 * 2, "-iPhone-29@2x")
        scaleAndSave(f, thisFile, 40 * 2, "-iPhone-40@2x")
        scaleAndSave(f, thisFile, 57 * 1, "-iPhone-57")
        scaleAndSave(f, thisFile, 57 * 2, "-iPhone-57@2x")
        scaleAndSave(f, thisFile, 60 * 2, "-iPhone-60@2x")

        -- iPad
        scaleAndSave(f, thisFile, 29 * 1, "-iPad-29")
        scaleAndSave(f, thisFile, 29 * 2, "-iPad-29@2x")
        scaleAndSave(f, thisFile, 40 * 1, "-iPad-40")
        scaleAndSave(f, thisFile, 40 * 2, "-iPad-40@2x")
        scaleAndSave(f, thisFile, 50 * 1, "-iPad-50")
        scaleAndSave(f, thisFile, 50 * 2, "-iPad-50@2x")
        scaleAndSave(f, thisFile, 72 * 1, "-iPad-72")
        scaleAndSave(f, thisFile, 72 * 2, "-iPad-72@2x")
        scaleAndSave(f, thisFile, 76 * 1, "-iPad-76")
        scaleAndSave(f, thisFile, 76 * 2, "-iPad-76@2x")

    end repeat
    tell application "Image Events" to quit
end processTheFiles

on scaleAndSave(aPath, aFile, aSize, aName)
    set savePath to text 1 thru -5 of aFile & aName & text -4 thru -1 of aFile
    tell application "Image Events"
        set a to open aPath
        scale a to size aSize
        save a in savePath
    end tell
    delay 0.2
end scaleAndSave

Here is the same as a file... just download, save, double click and run: https://dl.dropboxusercontent.com/u/170740/AppIcon.applescript

I hope, this saves you some time...

like image 199
Daniel Bleisteiner Avatar answered Sep 21 '22 23:09

Daniel Bleisteiner


I have done a shell script that I added as a build script to one of my projects. It generates all icons from the biggest one:

# Generate all icon files from Icon_1024.png

#smaller app store icon
sips --resampleWidth 512 Icon_1024.png --out Icon_512.png

#iphone icons
sips --resampleWidth 114 Icon_1024.png --out Icon\@2x.png
sips --resampleWidth 57 Icon_1024.png --out Icon.png

#ipad icons
sips --resampleWidth 144 Icon_1024.png --out Icon-72\@2x.png
sips --resampleWidth 72 Icon_1024.png --out Icon-72.png
like image 35
Michael Avatar answered Sep 17 '22 23:09

Michael


This will generate icons needed for ios 10 and 11:

sips --resampleWidth 167 icon1024.png --out icon167.png
sips --resampleWidth 152 icon1024.png --out icon152.png
sips --resampleWidth 76 icon1024.png --out icon76.png
sips --resampleWidth 80 icon1024.png --out icon80.png
sips --resampleWidth 40 icon1024.png --out icon40.png
sips --resampleWidth 58 icon1024.png --out icon58.png
sips --resampleWidth 29 icon1024.png --out icon29.png
sips --resampleWidth 20 icon1024.png --out icon20.png
sips --resampleWidth 180 icon1024.png --out icon180.png
sips --resampleWidth 120 icon1024.png --out icon120.png
sips --resampleWidth 87 icon1024.png --out icon87.png
sips --resampleWidth 60 icon1024.png --out icon60.png

Just open terminal in directory with icon1024.png and paste what is above to generate all needed icons.

like image 27
Leszek Szary Avatar answered Sep 21 '22 23:09

Leszek Szary