Module: JekyllIS::Images::Image::Magick

Extended by:
Magick
Included in:
Magick, SEO, Transform
Defined in:
lib/jekyll-is/images/image/magick.rb

Instance Method Summary collapse

Instance Method Details

#magick_convert(target, source, format:, options:, crop: nil, resize: nil) ⇒ void

This method returns an undefined value.

Parameters:

  • target (String)
  • source (String)
  • format (String)
  • options (JekyllIS::Context::Config::Options)
  • crop (String, nil) (defaults to: nil)
  • resize (String, nil) (defaults to: nil)


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/jekyll-is/images/image/magick.rb', line 16

def magick_convert target, source, format:, options:, crop: nil, resize: nil
  is_svg = File.extname(source).downcase == '.svg'
  MiniMagick::convert do |cmd|
    if is_svg
      cmd << '-density' << '300'
      cmd << '-background' << 'none'
    end
    cmd << source
    cmd.crop crop if crop
    cmd.resize resize if resize
    cmd.strip
    cmd.colorspace 'sRGB'
    cmd.quality options.quality if options && options.quality
    options&.defines&.each do |value|
      cmd.define value
    end
    cmd.format format
    cmd << "#{ format }:#{ target }"
  end
end

#magick_generate(target, format: 'png', width:, height:, background: 'none', foreground: nil, canvas: true) {|cmd| ... } ⇒ void

This method returns an undefined value.

Parameters:

  • target (String)
  • format (String) (defaults to: 'png')
  • width (Integer)
  • height (Integer)
  • background (String, nil) (defaults to: 'none')
  • foreground (String, nil) (defaults to: nil)
  • canvas (Boolean) (defaults to: true)

Yields:

  • Additional code.

Yield Parameters:

  • cmd (MiniMagick::Tool)

Yield Returns:

  • (void)

    ignored



48
49
50
51
52
53
54
55
56
57
58
# File 'lib/jekyll-is/images/image/magick.rb', line 48

def magick_generate target, format: 'png', width:, height:, background: 'none', foreground: nil, canvas: true
  MiniMagick::convert do |cmd|
    cmd.size "#{ width }x#{ height }"
    cmd.background background if background
    cmd.fill foreground if foreground
    cmd << "canvas:" if canvas
    yield cmd if block_given?
    cmd.format format
    cmd << "#{ format }:#{ target }"
  end
end