Рассмотрим, как использовать 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 предоставляет множество других возможностей для обработки изображений, и вы можете легко настраивать создание миниатюр в соответствии с вашими потребностями.
Содержание: