Created
April 11, 2017 16:51
-
-
Save roblabs/d2c3536760755de7715d2248e7854444 to your computer and use it in GitHub Desktop.
Generate iOS Launch or splash screen from a single image
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
#!/bin/bash -e | |
# -------------------------------------------------------- | |
# Generate iOS Launch items from a single image | |
# (c) 2017 ePi Rational, Inc. | |
# | |
# Modified from original script which generated app icons for iOS, | |
# originally written by | |
# Ben Clayton, Calvium Ltd. | |
# https://gist.github.com/benvium/2be6d673aa9ac284bb8a | |
# -------------------------------------------------------- | |
# Process | |
# As of 2017, the largest launch screen for iOS is. | |
# 12.9-inch iPad Pro | 2048px by 2732px | `Default-1366h@2x.png` | |
# 12.9-inch iPad Pro | 2732px by 2048px | `Default-Landscape-1366h@2x.png` | |
# | |
# The idea is to create a portrait and landscape at the above sizes, | |
# then use ImageMagick to scale. | |
# ImageMagick steps | |
# * create a white background with the desired image extent | |
# * scale the large image, while tending towards the center | |
# * testing showed that the `-resize` alone did not properly create the final image sizes. | |
# Check imagemagick is installed | |
# http://stackoverflow.com/questions/592620/check-if-a-program-exists-from-a-bash-script | |
command -v convert >/dev/null 2>&1 || { echo >&2 "Requires imagemagick, but it's not installed. See http://www.imagemagick.org. Aborting."; exit 1; } | |
# Uses the largest images as the base image for generating the others | |
portrait="Default-1366h@2x.png" | |
landscape="Default-Landscape-1366h@2x.png" | |
convert $portrait -resize 320x480 -gravity center -background white -extent 320x480 Default.png | |
convert $portrait -resize 640x960 -gravity center -background white -extent 640x960 Default@2x.png | |
convert $portrait -resize 1024x768 -gravity center -background white -extent 1024x768 Default-Landscape.png | |
convert $portrait -resize 2048x1536 -gravity center -background white -extent 2048x1536 Default-Landscape@2x.png | |
convert $portrait -resize 768x1024 -gravity center -background white -extent 768x1024 Default-Portrait.png | |
convert $portrait -resize 1536x2048 -gravity center -background white -extent 1536x2048 Default-Portrait@2x.png | |
convert $portrait -resize 1080x1920 -gravity center -background white -extent 1080x1920 Default-640h@3x.png | |
convert $landscape -resize 1920x1080 -gravity center -background white -extent 1920x1080 Default-Landscape-640h@3x.png | |
convert $portrait -resize 750x1334 -gravity center -background white -extent 750x1334 Default-667h@2x.png | |
convert $landscape -resize 1334x750 -gravity center -background white -extent 1334x750 Default-Landscape-667h@2x.png | |
convert $portrait -resize 640x1136 -gravity center -background white -extent 640x1136 Default-568h@2x.png | |
convert $landscape -resize 1136x640 -gravity center -background white -extent 1136x640 Default-Landscape-568h@2x.png | |
# convert $landscape -resize 2048x2732 -gravity center -background white -extent 2048x2732 Default-1366h@2x.png | |
# convert $landscape -resize 2732x2048 -gravity center -background white -extent 2732x2048 Default-Landscape-1366h@2x.png | |
convert $portrait -resize 1536x2048 -gravity center -background white -extent 1536x2048 Default-1024h@2x.png | |
convert $landscape -resize 2048x1536 -gravity center -background white -extent 2048x1536 Default-Landscape-1024h@2x.png | |
# **Splash Screens** | Portrait & Landscape, [iOS Human Interface Guidelines](https://developer.apple.com/ios/human-interface-guidelines/graphics/launch-screen/) | ![](assets/README-2dc5de66.png) | |
# Default (Portrait)| 320px by 480px | `Default.png` | |
# Default (Portrait)| 640px by 960px | `Default@2x.png` | |
# iPad | 1024px by 768px | `Default-Landscape.png` | |
# iPad Retina | 2048px by 1536px | `Default-Landscape@2x.png` | |
# iPad | 768px by 1024px | `Default-Portrait.png` | |
# iPad Retina | 1536px by 2048px | `Default-Portrait@2x.png` | |
# iPhone 6s Plus, iPhone 6 Plus | 1080px by 1920px | `Default-640h@3x.png` | |
# iPhone 6s Plus, iPhone 6 Plus | 1920px by 1080px | `Default-Landscape-640h@3x.png` | |
# iPhone 6s, iPhone 6 | 750px by 1334px | `Default-667h@2x.png` | |
# iPhone 6s, iPhone 6 | 1334px by 750px | `Default-Landscape-667h@2x.png` | |
# iPhone SE | 640px by 1136px | `Default-568h@2x.png` | |
# iPhone SE | 1136px by 640px | `Default-Landscape-568h@2x.png` | |
# 12.9-inch iPad Pro | 2048px by 2732px | `Default-1366h@2x.png` | |
# 12.9-inch iPad Pro | 2732px by 2048px | `Default-Landscape-1366h@2x.png` | |
# 9.7-inch iPad Pro, iPad Air 2, iPad mini 4, iPad mini 2 | 1536px by 2048px | `Default-1024h@2x.png` | |
# 9.7-inch iPad Pro, iPad Air 2, iPad mini 4, iPad mini 2 | 2048px by 1536px | `Default-Landscape-1024h@2x.png` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment