Class: Mmozjpeg::Cjpeg

Inherits:
Object
  • Object
show all
Defined in:
lib/mmozjpeg.rb

Class Method Summary collapse

Class Method Details

.optimize(infile:, outfile: nil, quality: nil, grayscale: nil, rgb: nil, optimize: nil, progressive: nil, targa: nil, arithmetic: nil, dct: nil, icc: nil, restart: nil, maxmemory: nil, memdst: nil, report: nil, verbose: nil, debug: nil, version: nil, baseline: nil, qtables: nil, qslots: nil, sample: nil, scans: nil) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/mmozjpeg.rb', line 21

def optimize(infile:, outfile: nil, quality: nil, grayscale: nil, rgb: nil,
  optimize: nil, progressive: nil, targa: nil, arithmetic: nil, dct: nil, icc: nil,
  restart: nil, maxmemory: nil, memdst: nil, report: nil, verbose: nil, debug: nil,
  version: nil, baseline: nil, qtables: nil, qslots: nil, sample: nil, scans: nil)

  cjpeg = "cjpeg"
  unless quality.nil?
    parsed_quality = ["-quality", quality.split(",").map { |v| Integer(v) }.join(",")]
  end
  parsed_infile = Pathname(infile).cleanpath.to_s unless infile.nil?

  if !outfile.nil? || !grayscale.nil? || !rgb.nil? || !optimize.nil? || !progressive.nil? ||
      !targa.nil? || !arithmetic.nil? || !dct.nil? || !icc.nil? || !restart.nil? || !maxmemory.nil? ||
      !memdst.nil? || !report.nil? || !verbose.nil? || !debug.nil? || !version.nil? ||
      !baseline.nil? || !qtables.nil? || !qslots.nil? || !sample.nil? || !scans.nil?
    raise Mmozjpeg::Error, "Oop, This option is'nt yet supported."
  end
  args = [cjpeg, parsed_quality, parsed_infile].select { |v| !v.nil? }.flatten!
  Open3.capture2(*args)
end

.supported?True

Whether cjpeg exists or not?

Returns:

  • (True)

    “cjpeg” exists,

    False

    “cjpeg” NOT exists



13
14
15
16
17
18
19
# File 'lib/mmozjpeg.rb', line 13

def supported?
  args = ["cjpeg", "-version"]
  _, _, s = Open3.capture3(*args)
  s
rescue Errno::ENOENT
  false
end