Как обрезать часть изображения в Python (библиотека Pillow)

Обрезка изображения в Python

Модуль Image из библиотеки для обработки изображений Pillow (PIL) предоставляет функцию crop() для обрезки части изображения по указанным координатам.

Далее мы напишем код для решения следующих задач:

  • Обычная обрезка картинки;
  • Обрезка изображения за пределами её размеров;
  • Обрезка центральной части картинки;
  • Обрезка наиболее крупного квадрата из прямоугольника, миниатюра для записи на блоге.

Содержание статьи

Установка библиотеки PIL

При желании создать изображение с прозрачным фоном, обрезав какую-то другую форму, помимо прямоугольника (к примеру, круг), можно использовать putalpha().

Связанная статья: Создание изображения с прозрачным фоном

Импортируем Image из PIL и откроем нужное изображение. Вы можете сохранить ниже предоставленную картинку под названием guido-van-rossum.jpg и начать работу с ней.

Как обрезать часть изображения в Python (библиотека Pillow)

Простая обрезка изображения в Pillow

Обозначим область обрезки изображения с помощью кортежа box=(left, upper, right, lower).

Верхней левой координате соответствует (x, y) = (left, upper), а нижней правой — (x, y) = (right, lower). Область, которую нужно обрезать — left <= x <right и upper <= y <lower, а пиксели x = right и y = lower не включаются.

Не забудьте, что box используется вместе со скобками ().

Если вы просто хотите сохранить обрезанную картинку без другой обработки, можете использовать следующий код:

Как обрезать часть изображения в Python (библиотека Pillow)

Обрезка изображения за её пределами

Если область за пределами размеров картинки включается в область обрезки, ошибок не будет — данная часть изображения просто будет окрашена в черный цвет.

Как обрезать часть изображения в Python (библиотека Pillow)

Обрезка изображения по центру в PIL

Если вы хотите вырезать центр изображения определенного размера, то функция crop_center поможет в решении этой задачи:

Как обрезать часть изображения в Python (библиотека Pillow)

Вырезаем квадрат из прямоугольника

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

Создаем функцию, которая обрезает квадрат из центра прямоугольного изображения:

Пример использования данной функции:

Результатом этого кода будет данная картинка:

Как обрезать часть изображения в Python (библиотека Pillow)