|
from PIL import Image, ImageDraw, ImageFilter |
|
import random |
|
|
|
def generate_portrait(width=512, height=512): |
|
"""Генерирует портрет в стиле цифровой живописи.""" |
|
|
|
|
|
img = Image.new("RGB", (width, height), "white") |
|
draw = ImageDraw.Draw(img) |
|
|
|
|
|
face_color = (random.randint(200, 255), random.randint(180, 230), random.randint(160, 210)) |
|
draw.ellipse((width // 4, height // 4, width * 3 // 4, height * 3 // 4), fill=face_color) |
|
|
|
|
|
eye_color = (255, 0, 0) |
|
eye_size = width // 10 |
|
draw.ellipse((width // 3 - eye_size, height // 3 - eye_size, width // 3 + eye_size, height // 3 + eye_size), fill=eye_color) |
|
draw.ellipse((width * 2 // 3 - eye_size, height // 3 - eye_size, width * 2 // 3 + eye_size, height // 3 + eye_size), fill=eye_color) |
|
|
|
|
|
lip_color = (200, 0, 0) |
|
draw.polygon([(width // 3, height * 3 // 5), (width * 2 // 3, height * 3 // 5), (width * 5 // 8, height * 3 // 4), (width * 3 // 8, height * 3 // 4)], fill=lip_color) |
|
|
|
|
|
img = img.filter(ImageFilter.GaussianBlur(radius=5)) |
|
|
|
return img |
|
|
|
|
|
portrait = generate_portrait() |
|
portrait.save("portrait.png") |
|
|
|
print("Изображение 'portrait.png' успешно сгенерировано.") |