Hiện nay tôi đang sử dụng:Thay đổi kích thước hình ảnh duy trì tỷ lệ khung hình VÀ làm cho hình ảnh chân dung và phong cảnh chính xác cùng kích thước?
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)
Mặc dù làm việc này, tôi kết thúc với kích thước hình ảnh khác nhau (một số là chân dung và một số cảnh quan), nhưng tôi muốn tất cả các hình ảnh có kích thước chính xác. Có lẽ một vụ cắt xén hợp lý?
UPDATE:
Tôi không quan tâm cắt xén một phần nhỏ của hình ảnh. Khi tôi nói cắt xén hợp lý, tôi có nghĩa là một cái gì đó như thế này algorythm:
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)
Cân nhắc đọc hướng dẫn sử dụng. Phương thức 'thumnail' là * có nghĩa là * để bảo toàn khía cạnh của hình ảnh. Rõ ràng, bạn không thể có cả hai, vì không phải tất cả các hình ảnh đều có cùng tỷ lệ khung hình. Xem xét sử dụng 'thay đổi kích thước' nếu bạn muốn rescale mà không giữ tỷ lệ. –
Ông có thể làm cho chúng có kích thước tương tự nếu ông muốn làm một phù hợp, mà sẽ pad ra khu vực thêm với một màu sắc liên tục. Điều đó sẽ cho phép hình ảnh 4x3 hoặc 16x9 hoặc bất kỳ hình ảnh nào phù hợp với một kích thước nhất định là 80x80 – jdi
Thật không may là không có cách nào tiêu chuẩn để xác định "hợp lý" để cắt xén. Có vẻ như bạn muốn luôn cắt một hình vuông từ hình ảnh, điều đó có nghĩa là bạn có nguy cơ cắt bỏ các phần bạn thực sự muốn giữ lại. –