Skip to content

Instantly share code, notes, and snippets.

@pfac
Last active June 24, 2019 17:13
Show Gist options
  • Save pfac/269b54b3b50f0ea1b29c to your computer and use it in GitHub Desktop.
Save pfac/269b54b3b50f0ea1b29c to your computer and use it in GitHub Desktop.
A demo snippet for adding some text to an image using ImageMagick
#!/usr/bin/env ruby
# convert \
# -font '/Library/Fonts/Comic Sans MS Bold.ttf' \
# -pointsize 48 demo.png \
# -fill yellow -annotate +50+100 'Merry Christmas' \
# -fill white -annotate +50+170 'Helen' \
# wtf.png
require 'mini_magick'
font_family = '/Library/Fonts/Tahoma.ttf'
font_family_bold = '/Library/Fonts/Tahoma Bold.ttf'
font_size = 48
padding = 40
color = '#ffffff'
title = 'The quick brown fox jumps over the lazy dog'
receiver_name = 'Helen'
MiniMagick::Tool::Convert.new do |convert|
convert.merge! ['-font', font_family]
convert.merge! ['-pointsize', font_size]
convert.background 'none'
convert.fill color
convert << "label:for"
convert << 'for.png'
end
MiniMagick::Tool::Convert.new do |convert|
convert.merge! ['-font', font_family_bold]
convert.merge! ['-pointsize', font_size]
convert.background 'none'
convert.fill(color)
convert << "label:#{receiver_name.upcase}"
convert << "receiver.png"
end
MiniMagick::Tool::Convert.new do |convert|
convert << 'for.png'
convert << 'receiver.png'
convert.background 'none'
convert.append
convert << 'text.png'
end
MiniMagick::Tool::Convert.new do |convert|
convert << 'text.png'
convert << '('
convert << '+clone'
convert.background('#000000').shadow('20x2+2+2')
convert << ')'
convert.swap.+
convert.background 'none'
convert.flatten
convert << 'text_shadow.png'
end
MiniMagick::Tool::Composite.new do |composite|
composite << 'text_shadow.png'
composite.geometry("+#{padding}+#{padding}") << 'theme.png' << 'ecard.png'
end
MiniMagick::Tool::Mogrify.new do |mogrify|
mogrify.resize(720) << 'ecard.png'
end
MiniMagick::Tool::Composite.new do |composite|
composite.geometry("+0-98")
composite.gravity('center')
composite << 'ecard.png' << 'envelope-back.png' << 'ecard_on_envelope.png'
end
MiniMagick::Tool::Composite.new do |composite|
composite.geometry("+0+35")
composite.gravity('center')
composite << 'envelope-front.png' << 'ecard_on_envelope.png' << 'ecard_in_envelope.png'
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment