Я беру файл изображения, уменьшаю его и обрезаю с помощью следующего кода PIL:
image = Image.open(filename)
image.thumbnail(size, Image.ANTIALIAS)
image_size = image.size
thumb = image.crop( (0, 0, size[0], size[1]) )
offset_x = max( (size[0] - image_size[0]) / 2, 0 )
offset_y = max( (size[1] - image_size[1]) / 2, 0 )
thumb = ImageChops.offset(thumb, offset_x, offset_y)
thumb.convert('RGBA').save(filename, 'JPEG')
Это прекрасно работает, за исключением случаев, когда соотношение сторон изображения отличается, разница заполняется черным цветом (или, может быть, альфа-каналом? ). Я в порядке с заливкой, я просто хотел бы иметь возможность выбрать цвет заливки --или еще лучше альфа-канал.
Пример вывода:
Как указать цвет заливки?