import png class Immagine(object): def __init__(self, w,h,color=(0,0,0)): self.w = w self.h = h self.img = [] for _ in range(h): riga = [] for _ in range(w): riga.append(color) self.img.append(riga) def save(self, filename): pngimg = png.from_array(self.img,'RGB') pngimg.save(filename) def heigth(self) : return self.h def width(self) : return self.w def inside(self, x, y): return 0 <= x < self.w and 0 <= y < self.h def draw_rect(self, x, y, w, h, color): for px in range(x, x+w): for py in range(y, y+h): try: self.img[py][px] = color except IndexError: pass def load(self, filename): with open(filename, mode='rb') as f: reader = png.Reader(file=f) w, h, png_img, _ = reader.asRGB8() img = [] for line in png_img: l = [] for i in range(0, len(line), 3): l.append((line[i], line[i+1], line[i+2])) img.append(l) self.img = img self.h = h self.w = w