class Libis::Format::Converter::ImageSplitter

Public Class Methods

category() click to toggle source
# File lib/libis/format/converter/image_splitter.rb, line 36
def self.category
  :splitter
end
input_types() click to toggle source
# File lib/libis/format/converter/image_splitter.rb, line 23
def self.input_types
  [:PDF, :TIFF, :GIF, :PBM, :PGM, :PPM]
end
multipage?(format) click to toggle source
# File lib/libis/format/converter/image_splitter.rb, line 32
def self.multipage?(format)
  [:PDF, :TIFF, :GIF, :PBM, :PGM, :PPM].include?(format)
end
output_types(format = nil) click to toggle source
# File lib/libis/format/converter/image_splitter.rb, line 27
def self.output_types(format = nil)
  return [] unless input_types.include?(format) if format
  [:TIFF, :JPG, :PNG, :BMP, :GIF, :PDF, :JP2]
end

Public Instance Methods

convert(source, target, format, opts = {}) click to toggle source
Calls superclass method Libis::Format::Converter::Base#convert
# File lib/libis/format/converter/image_splitter.rb, line 48
def convert(source, target, format, opts = {})
  super

  FileUtils.mkpath(File.dirname(target))

  if self.class.multipage?(format)
    target = File.join(File.dirname(target), "#{File.basename(target, '.*')}-%d#{File.extname(target)}")
  end

  result = split_image(source, target, format)
  return nil unless result
  target

end
image_split(_) click to toggle source
# File lib/libis/format/converter/image_splitter.rb, line 40
def image_split(_)
  #force usage of this converter
end
quiet(v) click to toggle source
# File lib/libis/format/converter/image_splitter.rb, line 44
def quiet(v)
  @quiet = !!v
end

Private Instance Methods

split_image(source, target, format) click to toggle source
# File lib/libis/format/converter/image_splitter.rb, line 65
def split_image(source, target, format)

  MiniMagick::Tool::Convert.new do |convert|
    convert.quiet if @quiet
    convert << source
    convert.format(format)
    convert << target

    debug "ImageMagick command: '#{convert.command.join(' ')}'"
  end

  target

end