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

- (Object) blend_mode(blend_mode = :Normal)



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

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