Курс Python → Обрезка изображения с Pillow

При работе с изображениями в Python с использованием библиотеки Pillow, часто возникает необходимость обрезать изображение до определенной области. Для этого используется метод crop(), который принимает аргумент в виде кортежа, содержащего координаты области обрезки. Например, для обозначения области обрезки на изображении с координатами (x1, y1) в верхнем левом углу и (x2, y2) в нижнем правом углу, можно создать кортеж box=(x1, y1, x2, y2).

Важно помнить, что координаты в кортеже box=(left, upper, right, lower) задают прямоугольную область на изображении. Верхняя левая координата (left, upper) указывает на точку начала обрезки, а нижняя правая (right, lower) — на точку конца обрезки. При этом пиксели с координатами x = right и y = lower не включаются в обрезанную область.

Для выполнения обрезки изображения в Pillow необходимо вызвать метод crop() на объекте Image и передать ему кортеж с координатами области обрезки. Например, для обрезки изображения img до области с координатами (100, 100) в верхнем левом углу и (300, 300) в нижнем правом углу, можно использовать следующий код:


from PIL import Image

img = Image.open('image.jpg')
cropped_img = img.crop((100, 100, 300, 300))
cropped_img.show()

В данном примере изображение ‘image.jpg’ будет обрезано до области с координатами (100, 100, 300, 300) и отображено на экране. При необходимости можно сохранить обрезанное изображение в файл, используя метод save(). Таким образом, обрезка изображения в Pillow с помощью кортежа box=(left, upper, right, lower) является простым и эффективным способом изменения размеров изображения.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Метод __iand__ для пользовательских классов
  2. Отправка POST запроса на сервер.
  3. Сравнение строк в Python
  4. Итераторы в Python
  5. Измерение времени выполнения кода
  6. Автоматизация скриптов на AWS Lightsail.
  7. Генераторы в Python
  8. Проблемы с именами переменных
  9. Функция product() из itertools
  10. Работа с NumPy массивами
  11. Реверс строки и списка в Python.
  12. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  13. Использование функции product
  14. Функции range() в Python
  15. Декоратор total_ordering для класса Point
  16. Работа с итераторами в Python
  17. Многоточие в Python
  18. Бесконечные списки в Python
  19. Управление доступом к модулю
  20. Карта бомбоубежищ в Москве и Питере
  21. Сортировка элементов с OrderedDict
  22. Путь к интерпретатору Python
  23. Доступ к локальным переменным
  24. Частичное совпадение пользовательского ввода в Python 3.10
  25. Установка и использование Logzero
  26. Python enumerate() использование
  27. Срезы в Python
  28. Работа с переменными в Python
  29. Настройка нарезки списков
  30. Таймер обратного отсчета
  31. Дизассемблирование Python кода
  32. Глобальные переменные в Python
  33. Подсчет элементов с помощью Counter
  34. Расширение информации об ошибке в Python
  35. Асинхронное выполнение задач в Python
  36. Множественное назначение в Python
  37. Python: отличительная особенность — отступы
  38. Переопределение метода __or__()
  39. Логирование с Loguru
  40. Python: возвращение нескольких значений
  41. Извлечение чисел из текста
  42. Лямбда-функции в defaultdict
  43. Очистка строки в Python
  44. Работа с f-строками 2.0
  45. Обратное распространение ошибки
  46. Импорт и использование модулей в Python
  47. Метод enumerate() в Python
  48. Метод rsub для пользовательских чисел

Marketello читают маркетологи из крутых компаний