module ChunkyPNG::Canvas::PNGDecoding
def decode_png_scanline_paeth(bytes, previous_bytes, pixelsize = 3)
def decode_png_scanline_paeth(bytes, previous_bytes, pixelsize = 3) bytes.each_with_index do |byte, i| a = (i >= pixelsize) ? bytes[i - pixelsize] : 0 b = previous_bytes[i] c = (i >= pixelsize) ? previous_bytes[i - pixelsize] : 0 p = a + b - c pa = (p - a).abs pb = (p - b).abs pc = (p - c).abs pr = (pa <= pb && pa <= pc) ? a : (pb <= pc ? b : c) bytes[i] = (byte + pr) % 256 end bytes end