Skip to content

Instantly share code, notes, and snippets.

@roblabs
Created April 11, 2017 16:51
Show Gist options
  • Save roblabs/d2c3536760755de7715d2248e7854444 to your computer and use it in GitHub Desktop.
Save roblabs/d2c3536760755de7715d2248e7854444 to your computer and use it in GitHub Desktop.
Generate iOS Launch or splash screen from a single image
#!/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 | `[email protected]`
# 12.9-inch iPad Pro | 2732px by 2048px | `[email protected]`
#
# 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="[email protected]"
landscape="[email protected]"
convert $portrait -resize 320x480 -gravity center -background white -extent 320x480 Default.png
convert $portrait -resize 640x960 -gravity center -background white -extent 640x960 [email protected]
convert $portrait -resize 1024x768 -gravity center -background white -extent 1024x768 Default-Landscape.png
convert $portrait -resize 2048x1536 -gravity center -background white -extent 2048x1536 [email protected]
convert $portrait -resize 768x1024 -gravity center -background white -extent 768x1024 Default-Portrait.png
convert $portrait -resize 1536x2048 -gravity center -background white -extent 1536x2048 [email protected]
convert $portrait -resize 1080x1920 -gravity center -background white -extent 1080x1920 [email protected]
convert $landscape -resize 1920x1080 -gravity center -background white -extent 1920x1080 [email protected]
convert $portrait -resize 750x1334 -gravity center -background white -extent 750x1334 [email protected]
convert $landscape -resize 1334x750 -gravity center -background white -extent 1334x750 [email protected]
convert $portrait -resize 640x1136 -gravity center -background white -extent 640x1136 [email protected]
convert $landscape -resize 1136x640 -gravity center -background white -extent 1136x640 [email protected]
# convert $landscape -resize 2048x2732 -gravity center -background white -extent 2048x2732 [email protected]
# convert $landscape -resize 2732x2048 -gravity center -background white -extent 2732x2048 [email protected]
convert $portrait -resize 1536x2048 -gravity center -background white -extent 1536x2048 [email protected]
convert $landscape -resize 2048x1536 -gravity center -background white -extent 2048x1536 [email protected]
# **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 | `[email protected]`
# iPad | 1024px by 768px | `Default-Landscape.png`
# iPad Retina | 2048px by 1536px | `[email protected]`
# iPad | 768px by 1024px | `Default-Portrait.png`
# iPad Retina | 1536px by 2048px | `[email protected]`
# iPhone 6s Plus, iPhone 6 Plus | 1080px by 1920px | `[email protected]`
# iPhone 6s Plus, iPhone 6 Plus | 1920px by 1080px | `[email protected]`
# iPhone 6s, iPhone 6 | 750px by 1334px | `[email protected]`
# iPhone 6s, iPhone 6 | 1334px by 750px | `[email protected]`
# iPhone SE | 640px by 1136px | `[email protected]`
# iPhone SE | 1136px by 640px | `[email protected]`
# 12.9-inch iPad Pro | 2048px by 2732px | `[email protected]`
# 12.9-inch iPad Pro | 2732px by 2048px | `[email protected]`
# 9.7-inch iPad Pro, iPad Air 2, iPad mini 4, iPad mini 2 | 1536px by 2048px | `[email protected]`
# 9.7-inch iPad Pro, iPad Air 2, iPad mini 4, iPad mini 2 | 2048px by 1536px | `[email protected]`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment