Как менять размер изображения при помощи Python?

Возможно, вам нужно изменить размер фотографии, используя для этого Python. Лично мне это необходимо для размещения изображений для рассылки по почте или для поста на сайте, но изображения слишком большие. Как правило, для этих целей используют редакторы. Я также пользуюсь ими, но ради интереса я покажу, как это делается при помощи языка программирования Python. Самый быстрый способ сделать это – использовать пакет Pillow, который можно установить при помощи pip.

После этого, открываем свой любимый редактор кода и пробуем следующий код:

Здесь мы импортируем класс Image из пакета Pillow. Далее, мы видим функцию, которая принимает три аргумента:

  • Локация файла, который мы хотим открыть;
  • Локацию, куда мы хотим сохранить измененное изображение;
  • Кортеж, который демонстрирует новый размер изображения, где кортеж – это ширина и высота.

Далее, мы открываем изображение и вводим его размер. После этого, мы вызываем метод resize() объекта изображения с размером переданного кортежа. Наконец, мы берем новый размер, выводим его и открываем изображение перед тем, как сохранить изменения. Теперь оно выглядит вот так:

Как менять размер изображения при помощи Python?

Как мы видим, метод resize() ничего не делает с масштабированием. Давайте разберемся с этой задачей!

Масштабирование изображения

Скорее всего, изменять размер изображения таким образом, как мы видели выше, вам не хочется, для лучшего результата нужно написать метод масштабирования. Проблема с предыдущим методом в том, что он не учитывает соотношения сторон картинки. Так что вместо изменения размера, вы можете просто использовать метод thumbnail(). Давайте попробуем:

Здесь мы даем Python передавать пути ввода и вывода, наряду с максимальной шириной и высотой. Далее, мы используем условное выражение для определения того, каким должен быть максимальный размер, после чего вызываем метод thumbnail() в нашем открытом объекте изображения. Мы также передаем флаг Image.ANTIALIAS, который применит фильтр для получения высокого качества изображения. Наконец, мы открываем обновленное, масштабированное изображение и выводим его новый размер, чтобы сравнить со старым. Если вы откроете масштабированное изображение, то увидите, что соотношение сторон фотографии сохранено.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Подведем итоги

Работа с пакетом Pillow – это просто и интересно. В данной статье мы научились менять размер изображений, масштабировать фотографии с учетом соотношения сторон. Вы также можете использовать новые знания для создания функции, которая будет выполнять вычисления над той или иной папкой и создавать эскизы хранящихся в ней фотографиях. Кроме этого, вы можете создать простое приложение для просмотра изображений и при этом удобное в использовании.

Для владельцев магазинов на WordPress есть отличная тема ThemeForest WoodMart для более выгодной конверсии покупателей. Отличный шаблон под планшеты и смартфоны.