Язык программирования Python

Захват изображения экрана с помощью Python с примерами

Хотя стандартная библиотека Python не предоставляет никакого метода для захвата экрана, мы можем сделать это с помощью нескольких сторонних модулей.

Вариант 1

Первый из них – PyAutoGUI, кроссплатформенный модуль для автоматизации задач. Мы можем захватить экран с помощью трех строк кода.

import pyautogui # Снимок экрана. screenshot = pyautogui.screenshot() # Сохранение изображения. screenshot.save("screenshot.png")
Code language: PHP (php)

PyAutoGUI внутренне использует Pillow, одну из самых популярных библиотек для работы с изображениями, поэтому screenshot является экземпляром PIL.Image.Image.

# Открыть изображение. screenshot.show()
Code language: CSS (css)

Чтобы захватить только часть экрана, мы используем параметр region – кортеж со структурой (X, Y, Width, Height).

# Захват части экрана. screenshot = pyautogui.screenshot(region=(50, 50, 400, 300))
Code language: PHP (php)

Самый простой способ установить модуль и все его зависимости – через pip.

pip install pyautogui

Для корректной работы PyAutoGUI в Linux необходимо также установить следующие зависимости.

pip install python3-xlib sudo apt-get install scrot sudo apt-get install python3-tk sudo apt-get install python3-dev
Code language: JavaScript (javascript)

В Max OS требуется следующее:

pip install pyobjc-core pip install pyobjc

В Windows пакет не требует дополнительной установки.

Вариант 2

Еще один пакет, похожий на PyAutoGUI – AutoPy, инструментарий автоматизации платформы, написанный на C.

Его API гораздо более элегантно, проще и приятнее, чем у предыдущего модуля, но на данный момент он поддерживает только Python 2 (именно поэтому он является вариантом номер два).

Захват экрана так же прост:

import autopy screenshot = autopy.bitmap.capture_screen() screenshot.save("screenshot.png")
Code language: JavaScript (javascript)

Функция capture_screen может принимать заданную область экрана в виде структуры ((X, Y), (Width, Height)).

screenshot = autopy.bitmap.capture_screen(((50, 50), (400, 300)))

Установить можно также через pip.

pip install autopy

Вариант 3

pyscreenshot – это модуль, созданный специально для выполнения этой задачи, доступный для Python 2 и 3.

Его единственная зависимость – PIL/Pillow.

В Linux также требуется один из следующих пакетов: scrot, ImageMagick, PyGTK, PyQt или wxPython.

В Mac OS X для этого требуется Quartz или screencapture.

im = pyscreenshot.grab() im.save("screenshot.png")
Code language: JavaScript (javascript)

Функция всегда возвращает экземпляр PIL.Image.Image.

Можно также захватить только часть экрана.

im = pyscreenshot.grab(bbox=(50, 50, 450, 350))

Обратите внимание, что структура bbox имеет вид (X1, Y1, X2, Y2).

Чтобы установить его, просто введите:

pip install pyscreenshot

В дистрибутивах Linux это также возможно:

easy_install pyscreenshot

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *