Module: Drakkon::Images::Roll
- Defined in:
- lib/drakkon/lib/images/roll.rb
Overview
Roll Images like an old TV imagemagick.org/Usage/warping/#roll
Class Method Summary collapse
- .images ⇒ Object
- .process(file, amount) ⇒ Object
- .prompt ⇒ Object
- .run!(args = []) ⇒ Object
- .start(amount) ⇒ Object
Class Method Details
.images ⇒ Object
57 58 59 |
# File 'lib/drakkon/lib/images/roll.rb', line 57 def self.images Dir["#{Dir.pwd}/**/*.png"] end |
.process(file, amount) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/drakkon/lib/images/roll.rb', line 44 def self.process(file, amount) image = MiniMagick::Image.open(file) LogBot.info('Image Roll', "Rolling: #{file}") img = image. do |cmd| cmd.background 'transparent' cmd.roll amount end img.write file end |
.prompt ⇒ Object
61 62 63 |
# File 'lib/drakkon/lib/images/roll.rb', line 61 def self.prompt TTY::Prompt.new(active_color: :cyan, interrupt: :exit) end |
.run!(args = []) ⇒ Object
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 |
# File 'lib/drakkon/lib/images/roll.rb', line 6 def self.run!(args = []) # Amount amount = if args.empty? prompt.ask('Roll Amount(+-LR+-UD)? (e.g. -10+0): ') else args.shift end puts <<~HELP Usage [WxH] [gravity] - Run in the directory you wish to modify the images - Rolls the images via MiniMagick Roll: Amount: #{amount} 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)} Roll!? #{'(Destructive)'.pastel(:red)}" start(amount) end |