def load(image, filename): """load a PNG file""" reader = png.Reader(filename=filename) image.width, image.height, pixels, _ = reader.asRGBA8() image.pixels = Image.create_array(image.width, image.height) index = 0 for row in pixels: for r, g, b, α in zip(row[::4], row[1::4], row[2::4], row[3::4]): image.pixels[index] = Image.color_for_argb(α, r, g, b) index += 1