module ChunkyPNG::Canvas::PNGEncoding
def encode_png_scanline_paeth(original_bytes, previous_bytes, pixelsize = 3)
-
(
) --
def encode_png_scanline_paeth(original_bytes, previous_bytes, pixelsize = 3) encoded_bytes = [] for i in 0...original_bytes.length do a = (i >= pixelsize) ? original_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) encoded_bytes[i] = (original_bytes[i] - pr) % 256 end [ChunkyPNG::FILTER_PAETH] + encoded_bytes end