Module: Drakkon::Images::Canvas
- Defined in:
- lib/drakkon/lib/images/canvas.rb
Overview
General Image Index Helper
Class Method Summary collapse
- .images ⇒ Object
- .process(file, gravity, size) ⇒ Object
- .prompt ⇒ Object
- .run!(args = []) ⇒ Object
- .start(size, gravity) ⇒ Object
Class Method Details
.images ⇒ Object
63 64 65 |
# File 'lib/drakkon/lib/images/canvas.rb', line 63 def self.images Dir["#{Dir.pwd}/**/*.png"] end |
.process(file, gravity, size) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/drakkon/lib/images/canvas.rb', line 50 def self.process(file, gravity, size) image = MiniMagick::Image.open(file) LogBot.info('Image Canvas', file) img = image. do |cmd| cmd.gravity gravity cmd.background 'transparent' cmd.extent size end img.write file end |
.prompt ⇒ Object
67 68 69 |
# File 'lib/drakkon/lib/images/canvas.rb', line 67 def self.prompt TTY::Prompt.new(active_color: :cyan, interrupt: :exit) end |
.run!(args = []) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/drakkon/lib/images/canvas.rb', line 5 def self.run!(args = []) # Sizing size = if args.empty? prompt.ask('Size? (e.g. 200x200): ') else args.shift end gravity = if args.empty? prompt.ask('Gravity? (west,east,north,south): ', default: 'south') else args.shift end puts <<~HELP Usage [WxH] [gravity] - Run in the directory you wish to modify the images - Adjust images via MiniMagick (extent) #{' '} Canvas: Size: #{size}, Gravity: #{gravity} Current Directory; #{Dir.pwd.pastel(:yellow)} Images: HELP images.sort.each do |img| img_s = img.gsub("#{Dir.pwd}/", '').pastel(:yellow) puts " - #{img_s}" end puts exit unless prompt.yes? "#{'Are you sure?'.pastel(:bright_yellow)} Canvas!? #{'(Destructive)'.pastel(:red)}" start(size, gravity) end |