diff --git a/retina-scale b/retina-scale new file mode 100755 index 0000000..1d2378d --- /dev/null +++ b/retina-scale @@ -0,0 +1,44 @@ +#!/usr/bin/ruby -w + +SCALES = [1, 2, 3] + +def usage + name = File.basename(__FILE__) + puts "Usage: #{name} " +end + +def generate_all_scales(size, in_file, out_dir) + SCALES.each do |scale| + scale_retina(size, scale, in_file, out_dir) + end +end + +def scale_retina(points, scale, in_file, out_dir) + file_scale = scale > 1 ? "@#{scale}x" : '' + ext = "_#{points}#{file_scale}.png" + filename = File.basename(in_file).sub(/\.\w+$/, ext) + size = points * scale + out_file = File.join(out_dir, filename) + puts "> convert '#{in_file}' -scale #{size}x#{size} '#{out_file}'" + output = `convert '#{in_file}' -scale #{size}x#{size} '#{out_file}'`.strip + puts output if output.length > 0 +end + +raw_size, in_file, out_dir = ARGV +size = raw_size.to_i +unless size > 0 + puts "Invalid size: #{raw_size.inspect}" + usage + exit 1 +end +unless File.exist?(in_file) + puts "Input image not found: #{in_file}" + usage + exit 2 +end +unless File.directory?(out_dir) + puts "Output directory not found: #{out_dir}" + usage + exit 1 +end +generate_all_scales(size, in_file, out_dir) diff --git a/scale-ios-app-icons b/scale-ios-app-icons new file mode 100755 index 0000000..e452e14 --- /dev/null +++ b/scale-ios-app-icons @@ -0,0 +1,24 @@ +#!/bin/sh + +function usage() { + echo "Usage: $0 " +} + +IN_FILE="$1" +OUT_DIR="$2" + +if [[ ! -r "$IN_FILE" ]]; then + echo "Source icon not found: $IN_FILE" + usage + exit 1 +fi +if [[ ! -d "$OUT_DIR" ]]; then + echo "Output directory not found: $OUT_DIR" + usage + exit 2 +fi + +for SIZE in 29 40 60 76; do + echo "* Generating app icons at $SIZE points" + retina-scale $SIZE "$IN_FILE" "$OUT_DIR" +done