Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
06 Сен 2023
2 мин
1784

Изменение размера изображения с сохранением пропорций в Python с использованием библиотеки PIL

Пройдите тест, узнайте какой профессии подходите

Изменение размера изображения — часто встречающаяся задача при работе с графикой в Python. Однако, простое изменение ширины и высоты может исказить

Изменение размера изображения — часто встречающаяся задача при работе с графикой в Python. Однако, простое изменение ширины и высоты может исказить изображение, нарушив его пропорции. Например, если есть изображение размером 800×600 пикселей, и его нужно преобразовать в изображение размером 400×400 пикселей, простое изменение размера приведет к искажению изображения.

В Python для работы с изображениями часто используется библиотека PIL (Python Imaging Library). Она предоставляет широкий спектр инструментов для работы с изображениями.

Для изменения размера изображения с сохранением пропорций необходимо сначала определить соотношение сторон исходного изображения, а потом изменить размер так, чтобы это соотношение сторон сохранялось.

Приведем пример кода, который выполняет это действие:

from PIL import Image

def make_thumbnail(filename, size=(128, 128)):
    # открываем изображение
    img = Image.open(filename)
    # определение соотношения сторон
    width, height = img.size
    if width > height:
        ratio = width / size[0]
        new_height = int(height / ratio)
        new_size = (size[0], new_height)
    else:
        ratio = height / size[1]
        new_width = int(width / ratio)
        new_size = (new_width, size[1])

    # изменение размера изображения
    img.thumbnail(new_size, Image.ANTIALIAS)
    return img

В этом примере функция make_thumbnail принимает имя файла изображения и размер миниатюры в качестве параметров. Сначала открывается изображение, затем определяется соотношение сторон. Если ширина больше высоты, то высота нового изображения считается на основе соотношения сторон и заданной ширины. В противном случае ширина нового изображения считается на основе соотношения сторон и заданной высоты. Затем изменяется размер изображения с использованием метода thumbnail, который автоматически сохраняет пропорции изображения.

Таким образом, с помощью библиотеки PIL можно легко изменять размер изображений, сохраняя их пропорции, что позволяет избежать искажений.

Добавить комментарий