Class: Axlsx::Pic
- Inherits:
-
Object
- Object
- Axlsx::Pic
- Defined in:
- lib/axlsx/drawing/pic.rb
Overview
a Pic object represents an image in your worksheet Worksheet#add_image is the recommended way to manage images in your sheets
Constant Summary collapse
- ALLOWED_EXTENSIONS =
allowed file extenstions
['gif', 'jpeg', 'png', 'jpg']
Instance Attribute Summary collapse
-
#anchor ⇒ OneCellAnchor
readonly
The anchor for this image.
-
#descr ⇒ String
A description of the picture.
-
#image_src ⇒ String
The path to the image you want to include Only local images are supported at this time and only jpg support.
-
#name ⇒ String
The name to use for this picture.
-
#picture_locking ⇒ Object
readonly
The picture locking attributes for this picture.
Instance Method Summary collapse
-
#extname ⇒ String
returns the extension of image_src without the preceeding ‘.’.
-
#file_name ⇒ String
The file name of image_src without any path information.
-
#height ⇒ Object
providing access to update the anchor’s height attribute.
- #height=(v) ⇒ Object
-
#index ⇒ Index
The index of this image in the workbooks images collections.
-
#initialize(anchor, options = {}) {|_self| ... } ⇒ Pic
constructor
Creates a new Pic(ture) object.
-
#pn ⇒ String
The part name for this image used in serialization and relationship building.
-
#start_at(x, y) ⇒ Marker
This is a short cut method to set the start anchor position If you need finer granularity in positioning use graphic_frame.anchor.from.colOff / rowOff.
-
#to_xml(xml) ⇒ String
Serializes the picture.
-
#width ⇒ Object
providing access to the anchor’s width attribute.
- #width=(v) ⇒ Object
Constructor Details
#initialize(anchor, options = {}) {|_self| ... } ⇒ Pic
Creates a new Pic(ture) object
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/axlsx/drawing/pic.rb', line 40 def initialize(anchor, ={}) @anchor = anchor @anchor.drawing.worksheet.workbook.images << self .each do |o| self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}=" end start_at(*[:start_at]) if [:start_at] yield self if block_given? @picture_locking = PictureLocking.new() end |
Instance Attribute Details
#anchor ⇒ OneCellAnchor (readonly)
The anchor for this image
27 28 29 |
# File 'lib/axlsx/drawing/pic.rb', line 27 def anchor @anchor end |
#descr ⇒ String
A description of the picture
18 19 20 |
# File 'lib/axlsx/drawing/pic.rb', line 18 def descr @descr end |
#image_src ⇒ String
The path to the image you want to include Only local images are supported at this time and only jpg support
23 24 25 |
# File 'lib/axlsx/drawing/pic.rb', line 23 def image_src @image_src end |
#name ⇒ String
The name to use for this picture
13 14 15 |
# File 'lib/axlsx/drawing/pic.rb', line 13 def name @name end |
#picture_locking ⇒ Object (readonly)
The picture locking attributes for this picture
30 31 32 |
# File 'lib/axlsx/drawing/pic.rb', line 30 def picture_locking @picture_locking end |
Instance Method Details
#extname ⇒ String
returns the extension of image_src without the preceeding ‘.’
73 74 75 |
# File 'lib/axlsx/drawing/pic.rb', line 73 def extname File.extname(image_src).delete('.') unless image_src.nil? end |
#file_name ⇒ String
The file name of image_src without any path information
67 68 69 |
# File 'lib/axlsx/drawing/pic.rb', line 67 def file_name File.basename(image_src) unless image_src.nil? end |
#height ⇒ Object
providing access to update the anchor’s height attribute
104 105 106 |
# File 'lib/axlsx/drawing/pic.rb', line 104 def height @anchor.height end |
#height=(v) ⇒ Object
109 110 111 |
# File 'lib/axlsx/drawing/pic.rb', line 109 def height=(v) @anchor.height = v end |
#index ⇒ Index
The index of this image in the workbooks images collections
79 80 81 |
# File 'lib/axlsx/drawing/pic.rb', line 79 def index @anchor.drawing.worksheet.workbook.images.index(self) end |
#pn ⇒ String
The part name for this image used in serialization and relationship building
85 86 87 |
# File 'lib/axlsx/drawing/pic.rb', line 85 def pn "#{IMAGE_PN % [(index+1), extname]}" end |
#start_at(x, y) ⇒ Marker
This is a short cut method to set the start anchor position If you need finer granularity in positioning use graphic_frame.anchor.from.colOff / rowOff
119 120 121 122 |
# File 'lib/axlsx/drawing/pic.rb', line 119 def start_at(x, y) @anchor.from.col = x @anchor.from.row = y end |
#to_xml(xml) ⇒ String
Serializes the picture
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/axlsx/drawing/pic.rb', line 127 def to_xml(xml) xml.send('xdr:pic') { xml.send('xdr:nvPicPr') { xml.send('xdr:cNvPr', :id=>"2", :name=>name, :descr=>descr) xml.send('xdr:cNvPicPr') { picture_locking.to_xml(xml) } } xml.send('xdr:blipFill') { xml.send('a:blip', :'xmlns:r' => XML_NS_R, :'r:embed'=>"rId1") xml.send('a:stretch') { xml.send('a:fillRect') } } xml.send('xdr:spPr') { xml.send('a:xfrm') { xml.send('a:off', :x=>0, :y=>0) xml.send('a:ext', :cx=>2336800, :cy=>2161540) } xml.send('a:prstGeom', :prst=>:rect) { xml.send('a:avLst') } } } end |
#width ⇒ Object
providing access to the anchor’s width attribute
92 93 94 |
# File 'lib/axlsx/drawing/pic.rb', line 92 def width @anchor.width end |
#width=(v) ⇒ Object
97 98 99 |
# File 'lib/axlsx/drawing/pic.rb', line 97 def width=(v) @anchor.width = v end |