Сообщить об ошибке.

Снимок экрана при помощи Pillow в Python

Синтаксис:

from PIL import ImageGrab

screenshot = ImageGrab.grab(bbox=None, 
                            include_layered_windows=False, 
                            all_screens=False, xdisplay=None)

Параметры:

  • bbox=None - регион экрана/окна для захвата. По умолчанию весь экран. Обратите внимание, что в ОС Windows верхняя левая точка может быть отрицательной, если используется all_screens=True.
  • include_layered_windows=False - включает многослойные окна. Только ОС Windows.
  • all_screens=False - захватить все мониторы. Только ОС Windows.
  • xdisplay=None - адрес дисплея X11. Значение None для получения системного экрана (по умолчанию в Linux). Пустая строка '' для получения экрана X11 (по умолчанию в Windows или macOS).

Возвращаемое значение:

  • объект изображения Image.

Описание:

Функция ImageGrab.grab делает снимок экрана. В macOS, пиксели внутри ограничительной рамки bbox возвращаются как изображение RGBA или изображение RGB в других операционных системах. Если ограничительная рамка отсутствует, то копируется весь экран.

Если аргумент xdisplay=None, то для выполнения снимка будет использоваться gnome-screenshot, если он установлен. Чтобы для захвата экрана/окна по умолчанию использовать X11, необходимо установить аргумент xdisplay='' (пустая строка).

Можно проверить поддержку X11, используя PIL.features.check_feature() с аргументом feature='xcb'.

Пример захвата экрана (создания скриншота).

from PIL import Image, ImageGrab
import time

# делаем задержку в 2 секунды на выбор 
# окна, для которого нужно сделать скриншот
time.sleep(2)

# создание скриншота
img = ImageGrab.grab()
# сохраним скриншот
img.save("test.jpg", quality="web_medium")

# откроем созданный скриншот
with Image.open("test.jpg") as img:
    # смотрим, какую информацию 
    # пишет библиотека Pillow 
    # при создании скриншота
    print(img.info)

Дополнительный аргумент quality метода img.save() Представляет собой настройки качества JPEG, которые эквивалентны настройкам Photoshop. По умолчанию доступны следующие пресеты: web_low, web_medium, web_high, web_very_high, web_maximum, low, medium, high, max.

Подробнее о дополнительных аргументах метода img.save() при сохранении JPEG читайте в материале "Особые параметры чтения/записи основных форматов изображений"