module Retinator
Constants
- VERSION
Public Class Methods
generate(path, res)
click to toggle source
# File lib/retinator.rb, line 10 def generate(path, res) return false unless check_params path, res show_dimension_hint_if_needed path, res generate_images path, res return true end
remove_files_on_abort()
click to toggle source
# File lib/retinator.rb, line 17 def remove_files_on_abort @saved_files.each do |file| FileUtils.rm file end @saved_files.clear end
Private Class Methods
check_params(path, res)
click to toggle source
# File lib/retinator.rb, line 24 def check_params(path, res) return false unless path && res return false unless File.exist? path return false unless res.kind_of? Integer return false unless res > 0 return true end
generate_images(path, res)
click to toggle source
# File lib/retinator.rb, line 32 def generate_images(path, res) @saved_files = [] name = Utils.filename path OUTPUTS.each do |config| scale = config[0] suffix = config[1] filename = "#{name}#{suffix}.#{OUTPUT_FORMAT}" puts "Generating #{filename}..." image = resize path, res * scale save_file image, filename, OUTPUT_FORMAT end puts "Done!".green @saved_files.clear end
resize(path, res)
click to toggle source
# File lib/retinator.rb, line 56 def resize(path, res) image = MiniMagick::Image.open path return image.resize("#{res}x#{res}^") end
save_file(image, filename, format)
click to toggle source
# File lib/retinator.rb, line 61 def save_file(image, filename, format) image.format format image.write filename @saved_files << filename end
show_dimension_hint_if_needed(path, res)
click to toggle source
# File lib/retinator.rb, line 47 def show_dimension_hint_if_needed(path, res) image = MiniMagick::Image.open(path) smaller_dimensions = image.dimensions.select { |d| d <= res * OUTPUT_MAX_SCALE} if !smaller_dimensions.empty? puts "[!] Size of the source image is smaller than the destination resolution".yellow puts " Result images could be pixelated".yellow end end