class ChunkyPNG::Datastream

def from_io(io)

Returns:
  • (ChunkyPNG::Datastream) - The loaded datastream instance.

Parameters:
  • io (IO) -- The stream to read from.
def from_io(io)
  verify_signature!(io)
  ds = self.new
  until io.eof?
    chunk = ChunkyPNG::Chunk.read(io)
    case chunk
      when ChunkyPNG::Chunk::Header       then ds.header_chunk        = chunk
      when ChunkyPNG::Chunk::Palette      then ds.palette_chunk       = chunk
      when ChunkyPNG::Chunk::Transparency then ds.transparency_chunk  = chunk
      when ChunkyPNG::Chunk::ImageData    then ds.data_chunks        << chunk
      when ChunkyPNG::Chunk::End          then ds.end_chunk           = chunk
      else ds.other_chunks << chunk
    end
  end
  return ds
end