Module: Prawn::Graphics::BlendMode

Included in:
Prawn::Graphics
Defined in:
lib/prawn/graphics/blend_mode.rb

Overview

The Prawn::BlendMode module is used to change the way two layers are blended together.

Passing an array of blend modes is allowed. PDF viewers should blend layers based on the first recognized blend mode.

Valid blend modes in v1.4 of the PDF spec include :Normal, :Multiply, :Screen, :Overlay, :Darken, :Lighten, :ColorDodge, :ColorBurn, :HardLight, :SoftLight, :Difference, :Exclusion, :Hue, :Saturation, :Color, and :Luminosity.

Example:

pdf.fill_color('0000ff')
pdf.fill_rectangle([x, y+25], 50, 50)
pdf.blend_mode(:Multiply) do
  pdf.fill_color('ff0000')
  pdf.fill_circle([x, y], 25)
end

Stable API collapse

Instance Method Details

#blend_mode(blend_mode = :Normal) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/prawn/graphics/blend_mode.rb', line 34

def blend_mode(blend_mode = :Normal)
  renderer.min_version(1.4)

  save_graphics_state if block_given?
  renderer.add_content "/#{blend_mode_dictionary_name(blend_mode)} gs"
  if block_given?
    yield
    restore_graphics_state
  end
end