Sha256: 836a60572a20ce498d44a166cf878653c24ac74b322f0b94972ae5dcec31bef3
Contents?: true
Size: 1.44 KB
Versions: 3
Compression:
Stored size: 1.44 KB
Contents
# frozen_string_literal: true require 'image_optim/worker' require 'image_optim/option_helpers' require 'image_optim/true_false_nil' class ImageOptim class Worker # http://optipng.sourceforge.net/ class Optipng < Worker LEVEL_OPTION = option(:level, 6, 'Optimization level preset: ' \ '`0` is least, ' \ '`7` is best') do |v| OptionHelpers.limit_with_range(v.to_i, 0..7) end INTERLACE_OPTION = option(:interlace, false, TrueFalseNil, 'Interlace: ' \ '`true` - interlace on, ' \ '`false` - interlace off, ' \ '`nil` - as is in original image') do |v| TrueFalseNil.convert(v) end STRIP_OPTION = option(:strip, true, 'Remove all auxiliary chunks'){ |v| !!v } def run_order -4 end def optimize(src, dst, options = {}) src.copy(dst) args = %W[ -o #{level} -quiet -- #{dst} ] args.unshift "-i#{interlace ? 1 : 0}" unless interlace.nil? if strip && resolve_bin!(:optipng).version >= '0.7' args.unshift '-strip', 'all' end execute(:optipng, args, options) && optimized?(src, dst) end def optimized?(src, dst) interlace ? dst.size? : super end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
image_optim-0.31.4 | lib/image_optim/worker/optipng.rb |
image_optim-0.31.3 | lib/image_optim/worker/optipng.rb |
image_optim-0.31.2 | lib/image_optim/worker/optipng.rb |