Sha256: 19157d8be11fa5c3dec9256829326821e14b5546ed9e5908cdf080682b1ffd08

Contents?: true

Size: 712 Bytes

Versions: 7

Compression:

Stored size: 712 Bytes

Contents

require 'image_optim/worker'
require 'image_optim/option_helpers'
require 'image_optim/true_false_nil'

class ImageOptim
  class Worker
    class Optipng < Worker
      option(:level, 6, 'Optimization level preset 0 is least, 7 is best'){ |v| OptionHelpers.limit_with_range(v.to_i, 0..7) }

      option(:interlace, false, TrueFalseNil, 'Interlace, true - interlace on, false - interlace off, nil - as is in original image') do |v|
        v && true
      end

      def optimize(src, dst)
        src.copy(dst)
        args = %W[-o#{level} -quiet -- #{dst}]
        args.unshift "-i#{interlace ? 1 : 0}" unless interlace.nil?
        execute(:optipng, *args) && optimized?(src, dst)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
image_optim-0.12.0 lib/image_optim/worker/optipng.rb
image_optim-0.11.2 lib/image_optim/worker/optipng.rb
image_optim-0.11.1 lib/image_optim/worker/optipng.rb
image_optim-0.11.0 lib/image_optim/worker/optipng.rb
image_optim-0.10.2 lib/image_optim/worker/optipng.rb
image_optim-0.10.1 lib/image_optim/worker/optipng.rb
image_optim-0.10.0 lib/image_optim/worker/optipng.rb