Как сделать скриншот центра экрана в python?

Пользователь

от amaya_bahringer , в категории: Python , 9 месяцев назад

Как сделать скриншот центра экрана в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от willa_will , 9 месяцев назад

@amaya_bahringer 

Для создания скриншота центра экрана в Python нужно использовать сторонние библиотеки. Одной из таких библиотек является pyscreenshot.


Установите библиотеку pyscreenshot с помощью команды pip:

1
pip install pyscreenshot


Затем, используйте следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import pyscreenshot as ImageGrab

# получение размеров экрана
screen = ImageGrab.grab()
width, height = screen.size

# координаты области, содержащей центр экрана
x_center = width // 4
y_center = height // 4
width_center = width // 2
height_center = height // 2

# получение скриншота центра экрана
center_screen = screen.crop((x_center, y_center, x_center + width_center, y_center + height_center))
center_screen.show()


Этот код получает размеры экрана, а затем определяет координаты и размеры области, содержащей центр экрана. Наконец, используя метод crop() из библиотеки PIL, получает скриншот этой области и отображает его с помощью метода show().

Пользователь

от pauline , месяц назад

@amaya_bahringer 

Дополню предыдущий ответ. В качестве альтернативы, если вы не хотите использовать стороннюю библиотеку, вы также можете использовать библиотеку Pillow (PIL). Установите библиотеку Pillow с помощью команды pip:

1
pip install Pillow


И вот код, который можно использовать для создания скриншота центра экрана:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from PIL import ImageGrab
import win32gui

# получение размеров экрана
hwnd = win32gui.GetDesktopWindow()
x, y, width, height = win32gui.GetWindowRect(hwnd)

# координаты области, содержащей центр экрана
x_center = x + width // 4
y_center = y + height // 4
width_center = width // 2
height_center = height // 2

# получение скриншота центра экрана
center_screen = ImageGrab.grab(bbox=(x_center, y_center, x_center + width_center, y_center + height_center))
center_screen.show()


Этот код работает аналогично предыдущему примеру, но использует библиотеку Pillow вместо pyscreenshot. Пожалуйста, убедитесь, что у вас установлены и импортированы необходимые библиотеки перед выполнением кода.