Написание прямоугольников на прямоугольном фоне
Привет, люди. Я пытаюсь создать функцию, в которой у вас есть фон,и вы пишете прямоугольники из списка с координатами x, y на фоне с помощью модуля png.
Что я уже пробовал:
Я пытался записать это так
def foto(self,lista,randomname): width = self.w length = self.h def create(iw, ih, c=(0,0,0)): img = [] for _ in range(ih): row = [] for _ in range(iw): row.append(c) img.append(row) return img def inside(img, i, j): return 0 <= i < width and 0<= j < lenght def draw_quad_simple(img, x, y, w, h, c=(0,0,0)): for j in range(y, y+h): for i in range(x,x+w): if inside(img,i,j): img[j][i] = c background= create(self.w,self.h,(self.r,self.g,self.b)) p=0 for p in range(len(lista)) : draw_quad_simple(background,self.w,self.h,(lista[p].x - self.x),(lista[p].y-self.y),lista[p].w,lista[p].h,(lista[p].r,lista[p].g,lista[p].b)) p=p+1 def save(filename, img): pyimg =png.from_array(img, 'RGB') pyimg.save(filename) save(fname_out,background)
Но в коде есть что-то неправильное, чего я не понимаю. Я должен получить это ИЗОБРАЖЕНИЕ но я получаю ЭТОТ , и я понятия не имею, где ошибка. Вход есть :
BackgroundRectangle = starting point p1(50,70) color c1(255,0,0) Rectangle(p1,150,100,c1) Rect2= starting point p2(100,40) color c2(0,255,0) Rectangle(p2,40,70,c2) Rect3= starting point p3(120,90) color c3(0,0,255) Rectangle(p3,60,40,c3) Rect4= starting point p4(30,140) color c4(255,255,0) Rectangle(p4,50,20,c4) Rect5= starting point p5(130,20) color c5(0,255,255) Rectangle(p5,50,20,c5) lista= [Rect2,Rect3,Rect4,Rect5] randomname='randomname'
Правка: исправлен код, теперь он работает