Изменить размер изображения с сохранением соотношения сторон И сделать портретные и альбомные изображения одинакового размера?

В настоящее время я использую:

    os.chdir(album.path)
    images = glob.glob('*.*')

    # thumbs size
    size = 80,80

    for image in images:
        #create thumb
        file, ext = os.path.splitext(image)
        im = Image.open(os.path.join(album.path,image))
        im.thumbnail(size, Image.ANTIALIAS)
        thumb_path = os.path.join(album.path, 'thumbs', file + ".thumb" + ".jpeg")
        im.save(thumb_path)

Хотя это работает, У меня получаются изображения разных размеров (некоторые портретные, а некоторые альбомные), но я хочу, чтобы все изображения имели точный размер. Может быть, разумная обрезка?

ОБНОВЛЕНИЕ:

Я не против обрезки небольшая часть изображения. Когда я сказал "разумное кадрирование", я имел в виду примерно такой алгоритм:

if image is portrait:
    make width 80px
    crop the height (will be more than 80px)
else if image is landscape:
    make height 80px
    crop the width to 80px (will be more than 80px)
11
задан thyagx 2 February 2012 в 21:58
поделиться