module ChunkyPNG::Canvas::PNGEncoding

def encode_png_pixelstream(color_mode = ChunkyPNG::COLOR_TRUECOLOR, bit_depth = 8, interlace = ChunkyPNG::INTERLACING_NONE, filtering = ChunkyPNG::FILTER_NONE)

Returns:
  • (String) - The PNG encoded canvas as string.

Parameters:
  • interlace (Integer) -- The interlacing method to use.
  • bit_depth (Integer) -- The bit depth of the image.
  • color_mode (Integer) -- The color mode to use for encoding.
def encode_png_pixelstream(color_mode = ChunkyPNG::COLOR_TRUECOLOR, bit_depth = 8, interlace = ChunkyPNG::INTERLACING_NONE, filtering = ChunkyPNG::FILTER_NONE)
  if color_mode == ChunkyPNG::COLOR_INDEXED 
    raise ChunkyPNG::ExpectationFailed, "This palette is not suitable for encoding!" if encoding_palette.nil? || !encoding_palette.can_encode?
    raise ChunkyPNG::ExpectationFailed, "This palette has too many colors!" if encoding_palette.size > (1 << bit_depth)
  end
  case interlace
    when ChunkyPNG::INTERLACING_NONE;  encode_png_image_without_interlacing(color_mode, bit_depth, filtering)
    when ChunkyPNG::INTERLACING_ADAM7; encode_png_image_with_interlacing(color_mode, bit_depth, filtering)
    else raise ChunkyPNG::NotSupported, "Unknown interlacing method: #{interlace}!"
  end
end