module ChunkyPNG::Canvas::PNGEncoding

def encode_png_str_scanline_average(stream, pos, prev_pos, line_width, pixel_size)

Returns:
  • (void) -

Parameters:
  • () --
def encode_png_str_scanline_average(stream, pos, prev_pos, line_width, pixel_size)
  line_width.downto(1) do |i|
    a = (i > pixel_size) ? stream.getbyte(pos + i - pixel_size) : 0
    b = prev_pos ? stream.getbyte(prev_pos + i) : 0
    stream.setbyte(pos + i, (stream.getbyte(pos + i) - ((a + b) >> 1)) & 0xff)
  end
  stream.setbyte(pos, ChunkyPNG::FILTER_AVERAGE)
end