module ChunkyPNG::Canvas::PNGEncoding
def to_datastream(constraints = {})
- See: ChunkyPNG::Canvas::PNGEncoding#determine_png_encoding -
Returns:
-
(ChunkyPNG::Datastream)
- The PNG datastream containing the encoded canvas.
Parameters:
-
constraints
(Hash
) -- The constraints to use when encoding the canvas.
def to_datastream(constraints = {}) encoding = determine_png_encoding(constraints) ds = Datastream.new ds.header_chunk = Chunk::Header.new(:width => width, :height => height, :color => encoding[:color_mode], :interlace => encoding[:interlace]) if encoding[:color_mode] == ChunkyPNG::COLOR_INDEXED ds.palette_chunk = encoding_palette.to_plte_chunk ds.transparency_chunk = encoding_palette.to_trns_chunk unless encoding_palette.opaque? end data = encode_png_pixelstream(encoding[:color_mode], encoding[:interlace]) ds.data_chunks = Chunk::ImageData.split_in_chunks(data) ds.end_chunk = Chunk::End.new return ds end