class ChunkyPNG::Palette

def self.from_chunks(palette_chunk, transparency_chunk = nil)

Other tags:
    See: ChunkyPNG::Palette#can_decode? -

Returns:
  • (ChunkyPNG::Palette) - The loaded palette instance.

Parameters:
  • The (ChunkyPNG::Chunk::Transparency, nil) -- optional transparency chunk.
  • The (ChunkyPNG::Chunk::Palette) -- palette chunk to load from
def self.from_chunks(palette_chunk, transparency_chunk = nil)
  return nil if palette_chunk.nil?
  decoding_map = []
  index = 0
  palatte_bytes = palette_chunk.content.unpack('C*')
  if transparency_chunk
    alpha_channel = transparency_chunk.content.unpack('C*')
  else
    alpha_channel = []
  end
  index = 0
  palatte_bytes.each_slice(3) do |bytes|
    bytes << alpha_channel.fetch(index, ChunkyPNG::Color::MAX)
    decoding_map << ChunkyPNG::Color.rgba(*bytes)
    index += 1
  end
  self.new(decoding_map, decoding_map)
end