Module: ChunkyPNG::PixelMatrix::Encoding

Included in:
ChunkyPNG::PixelMatrix
Defined in:
lib/chunky_png/pixel_matrix/encoding.rb

Instance Method Summary collapse

Instance Method Details

#encode(constraints = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/chunky_png/pixel_matrix/encoding.rb', line 5

def encode(constraints = {})
  encoding = determine_encoding(constraints)
  result = {}
  result[:header] = { :width => width, :height => height, :color => encoding[:color_mode] }

  if encoding[:color_mode] == ChunkyPNG::COLOR_INDEXED
    result[:palette_chunk]      = encoding[:palette].to_plte_chunk
    result[:transparency_chunk] = encoding[:palette].to_trns_chunk unless encoding[:palette].opaque?
  end

  result[:pixelstream] = encode_pixelstream(encoding[:color_mode], encoding[:palette])
  return result
end