vendor/gems/prawn-0.3.0/lib/prawn/images.rb
# add the image at filename to the current page. Currently only
# JPG and PNG files are supported.
#
# Arguments:
# <tt>file</tt>:: path to file or an object that responds to #read
#
# Options:
# <tt>:at</tt>:: an array [x,y] with the location of the top left corner of the image.
# <tt>:position</tt>::  One of (:left, :center, :right) or an x-offset
# <tt>:vposition</tt>::  One of (:top, :center, :center) or an y-offset    
# <tt>:height</tt>:: the height of the image [actual height of the image]
# <tt>:width</tt>:: the width of the image [actual width of the image]
# <tt>:scale</tt>:: scale the dimensions of the image proportionally
# <tt>:fit</tt>:: scale the dimensions of the image proportionally to fit inside [width,height]
# 
#   Prawn::Document.generate("image2.pdf", :page_layout => :landscape) do     
#     pigs = "#{Prawn::BASEDIR}/data/images/pigs.jpg" 
#     image pigs, :at => [50,450], :width => 450                                      
#
#     dice = "#{Prawn::BASEDIR}/data/images/dice.png"
#     image dice, :at => [50, 450], :scale => 0.75 
#   end   
#
# If only one of :width / :height are provided, the image will be scaled
# proportionally.  When both are provided, the image will be stretched to 
# fit the dimensions without maintaining the aspect ratio.
#
#
# If :at is provided, the image will be place in the current page but
# the text position will not be changed.
#
#
# If instead of an explicit filename, an object with a read method is
# passed as +file+, you can embed images from IO objects and things
# that act like them (including Tempfiles and open-uri objects).
#
#   require "open-uri"
#
#   Prawn::Document.generate("remote_images.pdf") do 
#     image open("http://prawn.majesticseacreature.com/media/prawn_logo.png")
#   end
#
# This method returns an image info object which can be used to check the
# dimensions of an image object if needed. 
# (See also: Prawn::Images::PNG , Prawn::Images::JPG)
# 
add the image at filename to the current page. Currently only
JPG and PNG files are supported.

file:: path to file or an object that responds to #read

:at:: an array [x,y] with the location of the top left corner of the image.





If only one of :width / :height are provided, the image will be scaled
proportionally.  When both are provided, the image will be stretched to
fit the dimensions without maintaining the aspect ratio.

If :at is provided, the image will be place in the current page but
the text position will not be changed.

If instead of an explicit filename, an object with a read method is
passed as +file+, you can embed images from IO objects and things
that act like them (including Tempfiles and open-uri objects).

require "open-uri"



This method returns an image info object which can be used to check the
dimensions of an image object if needed.
add the image at filename to the current page . Currently only JPG and PNG files are supported . file :: path to file or an object that responds to #read : at :: an array [ x y ] with the location of the top left corner of the image . If only one of : width / : height are provided the image will be scaled proportionally . When both are provided the image will be stretched to fit the dimensions without maintaining the aspect ratio . If : at is provided the image will be place in the current page but the text position will not be changed . If instead of an explicit filename an object with a read method is passed as + file + you can embed images from IO objects and things that act like them ( including Tempfiles and open - uri objects ) . require " open - uri " This method returns an image info object which can be used to check the dimensions of an image object if needed .
def image_position(w,h,options)
      options[:position] ||= :left
      x = case options[:position] 
      when :left
        bounds.absolute_left
      when :center
        bounds.absolute_left + (bounds.width - w) / 2.0 
      when :right
        bounds.absolute_right - w
      when Numeric
        options[:position] + bounds.absolute_left
      end
      y = case options[:vposition]
      when :top
        bounds.absolute_top
      when :center
        bounds.absolute_top - (bounds.height - h) / 2.0
      when :bottom
        bounds.absolute_bottom + h
      when Numeric
        bounds.absolute_top - options[:vposition]
      else
        self.y
      end
      return [x,y]
    end
def image_position ( w , h , options ) options [ :position ] ||= :left x = case options [ :position ] when :left bounds . absolute_left when :center bounds . absolute_left + ( bounds . width - w ) / 2.0 when :right bounds . absolute_right - w when Numeric options [ :position ] + bounds . absolute_left end y = case options [ :vposition ] when :top bounds . absolute_top when :center bounds . absolute_top - ( bounds . height - h ) / 2.0 when :bottom bounds . absolute_bottom + h when Numeric bounds . absolute_top - options [ :vposition ] else self . y end return [ x , y ] end
add the image at filename to the current page.
add the image at filename to the current page .
w
<not_specific>
h
<not_specific>
options
<not_specific>