Я хочу обрезать уменьшенное изображение в моем приложении Django, чтобы получить квадратичное изображение, отображающее центр изображения. Я не согласен с этим.Что является более элегантным перефразированием этого алгоритма обрезки? (в Python)
Я уже написал код, который делает именно это, но почему-то ему не хватает определенной ... элегантности. Я не хочу играть в гольф кода, но должен быть способ выразить это более короткое и более питоническое, я думаю.
x = y = 200 # intended size
image = Image.open(filename)
width = image.size[0]
height = image.size[1]
if (width > height):
crop_box = (((width - height)/2), 0, ((width - height)/2)+height, height)
image = image.crop(crop_box)
elif (height > width):
crop_box = (0, ((height - width)/2), width, ((height - width)/2)+width)
image = image.crop(crop_box)
image.thumbnail([x, y], Image.ANTIALIAS)
Есть ли у вас какие-либо идеи, так?
редактировать: объяснил х, у
Мне нравится иметь переменные ширины и высоты, явно названные. В противном случае кто-то, читающий этот код, должен найти документацию для Image.Size – Triptych
Может быть, есть свойства image.Width и image.Height, но я не знаю. Я просто вывел код из qustion. –