Python Pillow. Необходимо построить область перебором пикселей на полотне

Область, которую надо изобразить

Есть код, изображающий область с помощью фигуры, выстроенной по точкам:

from PIL import Image, ImageDraw 

imgWidth = 1280 
imgHeight = 720 

imgDimensions = (imgWidth,imgHeight) 

img = Image.new('RGB', imgDimensions, color="white") 
draw = ImageDraw.Draw(img) 

x0 = imgWidth // 2 
y0 = imgHeight // 2 
#Оси координат
draw.line( [ (x0, 0 ),(x0, imgHeight ) ], "black", 3) 
draw.line( [ (0, y0 ),(imgWidth, y0 ) ], "black", 3) 

l = 40 

#Клетки
k = (imgWidth//2) // l 

for i in range(1,k+1): 
    draw.line( [ (x0+ i*l, 0 ),(x0+ i*l,imgHeight ) ], "grey", 1) 
    draw.line( [ (x0- i*l, 0 ),(x0- i*l,imgHeight ) ], "grey", 1) 

k = (imgHeight//2) // l 
for i in range(1,k+1): 
    draw.line( [ (0, y0+ i*l ),(imgWidth, y0+ i*l ) ], "grey", 1) 
    draw.line( [ (0, y0- i*l ),(imgWidth, y0- i*l ) ], "grey", 1) 

#Фигура
points = [(x0+l*2,y0-l*4),(x0+l*2,y0),   
          (x0+l*5,y0),(x0+l*5,y0+l*3),      
          (x0-l*4,y0+l*3),(x0-l*4,y0),     
          (x0-l*2,y0),(x0-l*2,y0-l*4)]
draw.polygon(points, "grey", 0)
img.show()

Надо сделать тоже самое, но используя перебор пикселей полотна.


Ответы (1 шт):

Автор решения: Виктор

Использовать функцию БОЛЬШАЯ точка:

def point( image, x, y, size = 30, color=(0,0,0,255)):
    for iX in range(size):
        for iY in range(size):
            image.putpixel((x+iX, y+iY), color)

img = Image.new('RGB', imgDimensions, color="white") 
point(img,0,0)
→ Ссылка