class ChunkyPNG::Chunk::CompressedText

The CompressedText (zTXt) chunk contains keyword/value metadata about the PNG stream. In this chunk, the value is compressed using Deflate compression.

@see www.w3.org/TR/PNG/#11zTXt @see ChunkyPNG::Chunk::CompressedText @see ChunkyPNG::Chunk::InternationalText

Attributes

keyword[RW]
value[RW]

Public Class Methods

new(keyword, value) click to toggle source
Calls superclass method ChunkyPNG::Chunk::Base.new
# File lib/chunky_png/chunk.rb, line 333
def initialize(keyword, value)
  super("zTXt")
  @keyword, @value = keyword, value
end
read(type, content) click to toggle source
# File lib/chunky_png/chunk.rb, line 338
def self.read(type, content)
  keyword, compression, value = content.unpack("Z*Ca*")
  raise ChunkyPNG::NotSupported, "Compression method #{compression.inspect} not supported!" unless compression == ChunkyPNG::COMPRESSION_DEFAULT
  new(keyword, Zlib::Inflate.inflate(value))
end

Public Instance Methods

content() click to toggle source

Creates the content to write to the stream, by concatenating the keyword with the deflated value, joined by a null character.

@return The content that should be written to the datastream.

# File lib/chunky_png/chunk.rb, line 348
def content
  [
    keyword,
    ChunkyPNG::COMPRESSION_DEFAULT,
    Zlib::Deflate.deflate(value),
  ].pack("Z*Ca*")
end