gists/2011.rake-target-generate-favicons-apple-touch-icons.rb

45 lines
1.2 KiB
Ruby

# example use:
# rake favicons["../img/origin.png"]
#
# Output:
# ./apple-touch-icon-114x114-precomposed.png
# ./apple-touch-icon-114x114.png
# ./apple-touch-icon-57x57-precomposed.png
# ./apple-touch-icon-57x57.png
# ./apple-touch-icon-72x72-precomposed.png
# ./apple-touch-icon-72x72.png
# ./apple-touch-icon-precomposed.png
# ./apple-touch-icon.png
# ./favicon.ico
require "RMagick"
desc "Generates favicons and webapp icons"
task :favicons, :origin do |t, args|
name = "apple-touch-icon-%dx%d.png"
name_pre = "apple-touch-icon-%dx%d-precomposed.png"
FileList["*apple-touch-ico*.png"].each do |img|
File.delete img
end
FileList["*favicon.ico"].each do |img|
File.delete img
end
FileList[args.origin].each do |img|
puts "creating favicon.ico"
Magick::Image::read(img).first.resize(16, 16).write("favicon.ico")
[114, 57, 72].each do |size|
puts "creating %d * %d icons" % [size, size]
Magick::Image::read(img).first.resize(size, size).write(name % [size, size]).write(name_pre % [size, size])
end
puts "creating backward-compatible icons"
cp name_pre % [57, 57], "apple-touch-icon.png"
cp name_pre % [57, 57], "apple-touch-icon-precomposed.png"
end
end