Class: ChunkyPNG::Chunk::Header
Overview
The header (IHDR) chunk is the first chunk of every PNG image, and contains information about the image: i.e. its width, height, color depth, color mode, compression method, filtering method and interlace method.
ChunkyPNG supports all values for these variables that are defined in the PNG spec, except for color depth: Only 8-bit depth images are supported. Note that it is still possible to access the chunk for such an image, but ChunkyPNG will raise an exception if you try to access the pixel data.
Instance Attribute Summary collapse
-
#color ⇒ Object
Returns the value of attribute color.
-
#compression ⇒ Object
Returns the value of attribute compression.
-
#depth ⇒ Object
Returns the value of attribute depth.
-
#filtering ⇒ Object
Returns the value of attribute filtering.
-
#height ⇒ Object
Returns the value of attribute height.
-
#interlace ⇒ Object
Returns the value of attribute interlace.
-
#width ⇒ Object
Returns the value of attribute width.
Attributes inherited from Base
Class Method Summary collapse
-
.read(type, content) ⇒ ChunkyPNG::Chunk::End
Reads the 13 bytes of content from the header chunk to set the image attributes.
Instance Method Summary collapse
-
#content ⇒ String
Returns the content for this chunk when it gets written to a file, by packing the image information variables into the correct format.
-
#initialize(attrs = {}) ⇒ Header
constructor
A new instance of Header.
Methods inherited from Base
Constructor Details
#initialize(attrs = {}) ⇒ Header
Returns a new instance of Header.
119 120 121 122 123 124 125 126 |
# File 'lib/chunky_png/chunk.rb', line 119 def initialize(attrs = {}) super('IHDR', attrs) @depth ||= 8 @color ||= ChunkyPNG::COLOR_TRUECOLOR @compression ||= ChunkyPNG::COMPRESSION_DEFAULT @filtering ||= ChunkyPNG::FILTERING_DEFAULT @interlace ||= ChunkyPNG::INTERLACING_NONE end |
Instance Attribute Details
#color ⇒ Object
Returns the value of attribute color.
117 118 119 |
# File 'lib/chunky_png/chunk.rb', line 117 def color @color end |
#compression ⇒ Object
Returns the value of attribute compression.
117 118 119 |
# File 'lib/chunky_png/chunk.rb', line 117 def compression @compression end |
#depth ⇒ Object
Returns the value of attribute depth.
117 118 119 |
# File 'lib/chunky_png/chunk.rb', line 117 def depth @depth end |
#filtering ⇒ Object
Returns the value of attribute filtering.
117 118 119 |
# File 'lib/chunky_png/chunk.rb', line 117 def filtering @filtering end |
#height ⇒ Object
Returns the value of attribute height.
117 118 119 |
# File 'lib/chunky_png/chunk.rb', line 117 def height @height end |
#interlace ⇒ Object
Returns the value of attribute interlace.
117 118 119 |
# File 'lib/chunky_png/chunk.rb', line 117 def interlace @interlace end |
#width ⇒ Object
Returns the value of attribute width.
117 118 119 |
# File 'lib/chunky_png/chunk.rb', line 117 def width @width end |
Class Method Details
.read(type, content) ⇒ ChunkyPNG::Chunk::End
Reads the 13 bytes of content from the header chunk to set the image attributes.
133 134 135 136 137 |
# File 'lib/chunky_png/chunk.rb', line 133 def self.read(type, content) fields = content.unpack('NNC5') self.new(:width => fields[0], :height => fields[1], :depth => fields[2], :color => fields[3], :compression => fields[4], :filtering => fields[5], :interlace => fields[6]) end |
Instance Method Details
#content ⇒ String
Returns the content for this chunk when it gets written to a file, by packing the image information variables into the correct format.
142 143 144 |
# File 'lib/chunky_png/chunk.rb', line 142 def content [width, height, depth, color, compression, filtering, interlace].pack('NNC5') end |