Sha256: de3c4f247c48764793f2bb1e5e2cab14ef90e3f808dd1373965605662f0bd6f0

Contents?: true

Size: 787 Bytes

Versions: 4

Compression:

Stored size: 787 Bytes

Contents

require 'image_optim/worker'

class ImageOptim
  class Worker
    class Optipng < Worker
      # Optimization level preset 0..7 (0 is least, 7 is best, defaults to 6)
      attr_reader :level

      # Interlace, true - interlace on, false - interlace off, nil - as is in original image (defaults to false)
      attr_reader :interlace

      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

    private

      def parse_options(options)
        get_option!(options, :level, 6){ |v| limit_with_range(v.to_i, 0..7) }
        get_option!(options, :interlace, false){ |v| v && true }
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
image_optim-0.7.3 lib/image_optim/worker/optipng.rb
image_optim-0.7.2 lib/image_optim/worker/optipng.rb
image_optim-0.7.1 lib/image_optim/worker/optipng.rb
image_optim-0.7.0 lib/image_optim/worker/optipng.rb