class Media::InkscapeTransmogrifier

Public Class Methods

available?() click to toggle source
# File lib/media/transmogrifiers/inkscape.rb, line 20
def self.available?
  command_available?(INKSCAPE_COMMAND) and magick and magick.available?
end
input_types() click to toggle source
# File lib/media/transmogrifiers/inkscape.rb, line 16
def self.input_types
  %w(image/svg+xml image/svg+xml-compressed application/illustrator image/bzeps image/eps image/gzeps)
end
magick() click to toggle source
# File lib/media/transmogrifiers/inkscape.rb, line 8
def self.magick
  Media::Transmogrifier.list["Media::GraphicsMagickTransmogrifier"]
end
output_types() click to toggle source
# File lib/media/transmogrifiers/inkscape.rb, line 12
def self.output_types
  magick.output_types
end

Public Instance Methods

run(&block) click to toggle source
# File lib/media/transmogrifiers/inkscape.rb, line 24
def run(&block)
  if output_type == 'image/png' and options.empty?
    arguments = [INKSCAPE_COMMAND, '--without-gui', '--export-area-drawing', '--export-area-snap', input_file, '--export-png', output_file]
    run_command(*arguments, &block)
  else
    png_output_file = Media::TempFile.new(nil, "image/png")
    arguments = [INKSCAPE_COMMAND, '--without-gui', '--export-area-drawing', '--export-area-snap', input_file, '--export-png', png_output_file]
    status = run_command(*arguments, &block)
    return status if status != :success
    magick_transmog = self.class.magick.new(
      options.merge({
        input_file: png_output_file,  input_type: "image/png",
        output_file: output_file,     output_type: output_type
      })
    )
    magick_transmog.run(&block)
  end
end