Class: ChunkyPNG::Chunk::CompressedText

Inherits:
Base
  • Object
show all
Defined in:
lib/chunky_png/chunk.rb

Overview

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

See Also:

Instance Attribute Summary (collapse)

Attributes inherited from Base

#type

Class Method Summary (collapse)

Instance Method Summary (collapse)

Methods inherited from Base

#write, #write_with_crc

Constructor Details

- (CompressedText) initialize(keyword, value)

Returns a new instance of CompressedText



290
291
292
293
# File 'lib/chunky_png/chunk.rb', line 290

def initialize(keyword, value)
  super('zTXt')
  @keyword, @value = keyword, value
end

Instance Attribute Details

- (Object) keyword

Returns the value of attribute keyword



288
289
290
# File 'lib/chunky_png/chunk.rb', line 288

def keyword
  @keyword
end

- (Object) value

Returns the value of attribute value



288
289
290
# File 'lib/chunky_png/chunk.rb', line 288

def value
  @value
end

Class Method Details

+ (Object) read(type, content)



295
296
297
298
299
# File 'lib/chunky_png/chunk.rb', line 295

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

Instance Method Details

- (Object) content

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

Returns:

  • The content that should be written to the datastream.



305
306
307
308
# File 'lib/chunky_png/chunk.rb', line 305

def content
  [keyword, ChunkyPNG::COMPRESSION_DEFAULT, Zlib::Deflate.deflate(value)].
    pack('Z*Ca*')
end