Помогите, пожалуйста, с заданием на Python
Напишите функцию для создания изображения из наиболее характерных частей лучшей копии Земли.
Функция best_earth() принимает аргументы: имя файла исходного изображения, три кортежа из двух чисел, именованный аргумент reverse со значением по умолчанию 0 (возможные значения – 90, 180, 270).
Функция поворачивает изображение на угол 180 градусов против часовой стрелки, затем меняет пиксели: если пиксель слишком красный – красная составляющая больше двух других, – у нее нужно забрать половину и поделить поровну между зеленой и синей, но не больше максимально возможной (используйте целочисленное деление); затем вырезаются три прямоугольника 600х200 пикселей, координаты левых верхних углов которых записаны в переданных кортежах, и помещаются один под другим на новое изображение, которое поворачивается на угол, записанный в reverse, против часовой стрелки.
Функция возвращает новое изображение.
Пример
best_earth(
'earth.png',
(0, 0), (400, 400), (100, 200),
reverse=180
).save('result.png')
from PIL import Image
def best_earth(filename, rect1, rect2, rect3, reverse=0):
img = Image.open(filename)
img = img.rotate(180)
width, height = img.size
for x in range(width):
for y in range(height):
r, g, b = img.getpixel((x, y))
if r > g and r > b:
diff = r // 2
r -= diff
g += diff // 2
b += diff // 2
img.putpixel((x, y), (r, min(g, 255), min(b, 255)))
new_img = Image.new('RGB', (600, 600))
crop1 = img.crop((rect1[0], rect1[1], rect1[0] + 600, rect1[1] + 200))
new_img.paste(crop1, (0, 0))
crop2 = img.crop((rect2[0], rect2[1], rect2[0] + 600, rect2[1] + 200))
new_img.paste(crop2, (0, 200))
crop3 = img.crop((rect3[0], rect3[1], rect3[0] + 600, rect3[1] + 200))
new_img.paste(crop3, (0, 400))
new_img = new_img.rotate(reverse)
return new_img
Traceback (most recent call last):
File "<string>", line 1
```python
^
SyntaxError: invalid syntax
best_earth(
'earth.png',
(0, 0), (400, 400), (100, 200),
reverse=180
).save('result.png')