В настоящее время я использую:
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)