2016-06-01 3 views
-1

Я хочу изменить размер некоторых изображений, и вот мой код.Python не изменяет размер изображения

import os 
from PIL import Image 

size = 300, 300 

for f in os.listdir('.'): 
    if f.endswith('.png'): 
     i = Image.open(f) 
     fn, fext = os.path.splitext(f) 
     i.thumbnail(size, Image.ANTIALIAS) 
     i.save('output/{}{}'.format(fn, fext)) 

код работает отлично, и это изменяет все мое изображение к ширине 300px, но высота не изменить.

Может ли кто-нибудь сказать мне, почему?

ответ

1

Image.thumbnail() предназначен для сохранения соотношения сторон исходного изображения. Если вы хотите, чтобы выходное изображение было ровно 300x300 пикселей, используйте вместо этого Image.resize().

+0

привет, Роб, спасибо за ответ. Я использовал resize(), как вы сказали, но это не сработало, даже не изменило ширину любой идеи plz? – Harris

+0

'thumbnail' - метод inplace, но' resize' возвращает копию измененного изображения. Поэтому измените строку с миниатюрой на 'i = i.resize (size, Image.ANTIALIAS)'. – Rob

Смежные вопросы