Изменение размера изображений с помощью Python
Краткое объяснение того, как изменить размер изображений в Python, сохраняя то же соотношение сторон.
Я люблю Python и уже некоторое время изучаю его. Некоторое время назад я написал скрипт Python, в котором мне нужно было изменить размер нескольких изображений, сохраняя при этом соотношение сторон (пропорции). Итак, я осмотрелся и нашел Pillow, библиотеку изображений Python и «дружественный ответвление» старой библиотеки под названием PIL.
Чтобы установить Pillow, используйте модуль Python pip
:
$ python3 -m pip install Pillow
Масштабирование по ширине
Вот базовый скрипт для изменения размера изображения с помощью модуля Pillow:
from PIL import Image
basewidth = 300
img = Image.open('fullsized_image.jpg')
wpercent = (basewidth / float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), Image.ANTIALIAS)
img.save('resized_image.jpg')
Эти несколько строк кода Python изменяют размер изображения (fullsized_image.jpg) с помощью Pillow до ширины 300 пикселей, которая задается в переменной basewidth, и высоты, пропорциональной новая ширина. Пропорциональная высота рассчитывается путем определения процента 300 пикселей от исходной ширины (img.size[0]) и последующего умножения исходной высоты (img.size[1]. >) на этот процент. Полученное значение высоты сохраняется в переменной hsize.
Вы можете изменить basewidth на любое другое число, если вам нужна другая ширина для ваших изображений. Также обратите внимание, что я сохранил изображение с измененным размером под другим именем, resized_image.jpg, так как хотел сохранить и полноразмерное изображение (fullsized_image.jpg). Конечно, вам не обязательно этого делать. Вы можете использовать то же имя файла, чтобы перезаписать полноразмерное изображение изображением с измененным размером, если вы этого хотите.
Масштабирование по высоте
Если высота фиксирована, а ширина пропорционально переменная, это почти то же самое, вам просто нужно немного поменять местами:
blog and republished under Creative Commons with permission.
This article was updated in January 2021 by the editor.