Метод thumbnail() в Pillow

Генерация миниатюр с различными параметрами в Pillow

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

Прежде чем начать создание миниатюр, сначала откроем изображение:

from PIL import Image

# Открытие изображения
img = Image.open("example.jpg")

# Получение размеров изображения
width, height = img.size

# Отображение изображения
img.show()

Создание миниатюры

Теперь давайте перейдем к созданию миниатюры изображения. Pillow предоставляет метод thumbnail(), который позволяет легко создать уменьшенную версию изображения.

Синтаксис:

Image.thumbnail(size, resample=0)
  • size: Кортеж, представляющий новый размер миниатюры. Например, (width, height).
  • resample: Параметр, определяющий метод интерполяции при изменении размера изображения. По умолчанию установлен в 0 (NEAREST). Другие варианты включают Image.NEAREST, Image.BOX, Image.BILINEAR, Image.HAMMING, Image.BICUBIC, и Image.LANCZOS.

Пример:

# Создание миниатюры с фиксированной шириной
thumbnail_width = 200
img.thumbnail((thumbnail_width, height))

# Сохранение миниатюры
img.save("thumbnail_example.jpg")

Исходное изображение:

Результат:

Множественные миниатюры

Иногда требуется создать несколько миниатюр с разными размерами. Мы можем легко решить эту задачу, используя цикл.

from PIL import Image

# Открываем изображение
image_path = "example.jpg"
img = Image.open(image_path)

# Список ширин для миниатюр
widths = [100, 200, 300]

# Создание и сохранение трех миниатюр с разными ширинами
for width in widths:
    # Создаем копию изображения перед изменением размера
    img_copy = img.copy()

    # Изменяем размер копии
    new_width = width
    new_height = int((new_width / img.width) * img.height)
    img_copy.thumbnail((new_width, new_height))

    # Сохраняем миниатюру
    img_copy.save(f"thumbnail_{new_width}.jpg")

Таким образом мы создадим 3 миниатюры шириной 100, 200 и 300 пикселей:

Заключение

Мы рассмотрели основы создания миниатюр изображений с различными настройками. Помните, что Pillow предоставляет множество других возможностей для обработки изображений, и вы можете легко настраивать создание миниатюр в соответствии с вашими потребностями.

Содержание: