В настоящее время я использую:
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)
Хотя это работает, я получаю изображения разных размеров (некоторые - портретные, а некоторые - ландшафтные), но я хочу, чтобы все изображения имели точный размер. Может быть, разумная обрезка?
UPDATE:
Я не против обрезать небольшую часть изображения. Когда я сказал разумное обрезание, я имею в виду что-то вроде этого алгоритма:
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)