class ImageOptim::Worker::Gifsicle

www.lcdf.org/gifsicle/

Constants

CAREFUL_OPTION
INTERLACE_OPTION
LEVEL_OPTION

Public Class Methods

init(image_optim, options = {}) click to toggle source

If interlace specified initialize one instance Otherwise initialize two, one with interlace off and one with on

Calls superclass method
# File lib/image_optim/worker/gifsicle.rb, line 11
def self.init(image_optim, options = {})
  return super if options.key?(:interlace)

  [false, true].map do |interlace|
    new(image_optim, options.merge(interlace: interlace))
  end
end

Public Instance Methods

optimize(src, dst, options = {}) click to toggle source
# File lib/image_optim/worker/gifsicle.rb, line 40
def optimize(src, dst, options = {})
  args = %W[
    --output=#{dst}
    --no-comments
    --no-names
    --same-delay
    --same-loopcount
    --no-warnings
    --
    #{src}
  ]

  if resolve_bin!(:gifsicle).version >= '1.85'
    args.unshift '--no-extensions', '--no-app-extensions'
  end

  unless interlace.nil?
    args.unshift interlace ? '--interlace' : '--no-interlace'
  end
  args.unshift '--careful' if careful
  args.unshift "--optimize=#{level}" if level
  execute(:gifsicle, args, options) && optimized?(src, dst)
end