imagineer v0.3.1 Imagineer.Image.PNG.Interlace.None

Summary

Functions

Takes in a PNG whose decompressed data is not interlaced and splits up the individual scanlines, returning scanlines. A scanline is 1 byte containing the filter followed by the binary representation of that row of pixels (as filtered through the filter indicated by the first byte.)

Functions

encode_scanlines(png)
extract_scanlines(image)

Takes in a PNG whose decompressed data is not interlaced and splits up the individual scanlines, returning scanlines. A scanline is 1 byte containing the filter followed by the binary representation of that row of pixels (as filtered through the filter indicated by the first byte.)

Example

iex> alias Imagineer.Image.PNG
  iex> decompressed_data = <<1, 127, 138, 255, 20, 21, 107, 0, 233, 1, 77,
  ...> 78, 191, 144, 2, 1, 77, 16, 234, 234, 154, 3, 67, 123, 98, 142,
  ...> 117, 3, 4, 104, 44, 87, 33, 91, 188>>
  iex> %PNG{
  ...>   decompressed_data: decompressed_data,
  ...>   color_format: :rgb,
  ...>   bit_depth: 8,
  ...>   width: 2,
  ...>   height: 5,
  ...>   interlace_method: 0
  ...> } |>
  ...> PNG.Interlace.None.extract_scanlines()
  [
    <<1, 127, 138, 255, 20, 21, 107>>,
    <<0, 233, 1, 77, 78, 191, 144>>,
    <<2, 1, 77, 16, 234, 234, 154>>,
    <<3, 67, 123, 98, 142, 117, 3>>,
    <<4, 104, 44, 87, 33, 91, 188>>
  ]