Class: ImageOptim::Worker::Jpegoptim

Inherits:
ImageOptim::Worker show all
Defined in:
lib/image_optim/worker/jpegoptim.rb

Overview

Constant Summary collapse

STRIP_OPTION =
option(:strip, :all, Array, 'List of extra markers to strip: '\
    '`:comments`, '\
    '`:exif`, '\
    '`:iptc`, '\
    '`:icc` or '\
    '`:all`') do |v|
  values = Array(v).map(&:to_s)
  known_values = %w[all comments exif iptc icc]
  unknown_values = values - known_values
  unless unknown_values.empty?
    warn "Unknown markers for jpegoptim: #{unknown_values.join(', ')}"
  end
  values & known_values
end
MAX_QUALITY_OPTION =
option(:max_quality, 100, 'Maximum image quality factor '\
    '`0`..`100`') do |v|
  OptionHelpers.limit_with_range(v.to_i, 0..100)
end

Instance Method Summary collapse

Methods inherited from ImageOptim::Worker

#<=>, bin_sym, #image_formats, inherited, #initialize, klasses, #optimized?, option, option_definitions

Constructor Details

This class inherits a constructor from ImageOptim::Worker

Instance Method Details

#optimize(src, dst) ⇒ Object



35
36
37
38
39
40
41
42
43
# File 'lib/image_optim/worker/jpegoptim.rb', line 35

def optimize(src, dst)
  src.copy(dst)
  args = %W[-q -- #{dst}]
  strip.each do |strip_marker|
    args.unshift "--strip-#{strip_marker}"
  end
  args.unshift "-m#{max_quality}" if max_quality < 100
  execute(:jpegoptim, *args) && optimized?(src, dst)
end

#run_orderObject

Run first [-1] if max_quality < 100 otherwise with normal priority



31
32
33
# File 'lib/image_optim/worker/jpegoptim.rb', line 31

def run_order
  max_quality < 100 ? -1 : 0
end