module ImageProcessing::MiniMagick::Processor::Utils
Public Instance Methods
apply_define(magick, options)
click to toggle source
Applies settings from the provided (nested) hash.
# File lib/image_processing/mini_magick.rb, line 226 def apply_define(magick, options) options.each do |namespace, settings| namespace = namespace.to_s.tr("_", "-") settings.each do |key, value| key = key.to_s.tr("_", "-") magick.define "#{namespace}:#{key}=#{value}" end end magick end
apply_options(magick, define: {}, **options)
click to toggle source
Applies options from the provided hash.
# File lib/image_processing/mini_magick.rb, line 213 def apply_options(magick, define: {}, **options) options.each do |option, value| case value when true, nil then magick.send(option) when false then magick.send(option).+ else magick.send(option, *value) end end apply_define(magick, define) end
disallow_split_layers!(destination_path)
click to toggle source
When a multi-layer format is being converted into a single-layer format, ImageMagick will create multiple images, one for each layer. We want to warn the user that this is probably not what they wanted.
# File lib/image_processing/mini_magick.rb, line 203 def disallow_split_layers!(destination_path) layers = Dir[destination_path.sub(/(\.\w+)?$/, '-*\0')] if layers.any? layers.each { |path| File.delete(path) } raise Error, "Source format is multi-layer, but destination format is single-layer. If you care only about the first layer, add `.loader(page: 0)` to your pipeline. If you want to process each layer, see https://github.com/janko/image_processing/wiki/Splitting-a-PDF-into-multiple-images or use `.saver(allow_splitting: true)`." end end