Скриншот экрана, фото с веб камеры на Python

Скриншот экрана — это снимок текущего содержимого экрана или его части. В Python существует несколько библиотек, которые позволяют делать скриншоты. В этой статье мы рассмотрим наиболее популярные из них: Pillow, pyautogui и mss.

1. Использование библиотеки Pillow

Pillow — это форк библиотеки PIL (Python Imaging Library), который предоставляет множество возможностей для работы с изображениями, включая создание скриншотов.

Установка

Для установки Pillow используйте команду:
pip install pillow

Пример кода

from PIL import ImageGrab

screenshot = ImageGrab.grab()
screenshot.save('screenshot1.png')
screenshot.close()

Этот код использует метод ImageGrab.grab() для захвата всего экрана и сохранения изображения в файл screenshot_pillow.png.

2. Использование библиотеки pyautogui

pyautogui — это библиотека для автоматизации GUI (графического интерфейса пользователя). Она предоставляет функции для захвата экрана, перемещения мыши и эмуляции нажатий клавиш.

Установка

Для установки pyautogui используйте команду:
pip install PyAutoGUI

Пример кода

import pyautogui

im1 = pyautogui.screenshot()
im1.save('screenshot2.png')

Этот код использует метод pyautogui.screenshot() для захвата всего экрана и сохранения изображения в файл screenshot_pyautogui.png.

3. Использование библиотеки mss

mss — это библиотека для захвата экрана, которая работает как на Windows, так и на macOS и Linux. Она обеспечивает высокую производительность и простоту использования.

Установка

Для установки mss используйте команду:
pip install mss

Пример кода

import mss

with mss.mss() as sct:
    screenshot = sct.shot(output="screenshot_mss.png")
Этот код использует метод sct.shot() для захвата всего экрана и сохранения изображения в файл screenshot_mss.png.

4. Фото с веб камеры

import cv2, imutils

# pip install opencv-python imutils

width = 720

cap = cv2.VideoCapture(0)
for i in range(30):
    cap.read()
ret, frame = cap.read()
frame = imutils.resize(frame, width=width)
cv2.imwrite('snap_webcam.png', frame)   
cap.release()

Заключение

В Python существует несколько библиотек для захвата скриншотов. Каждая из них имеет свои особенности и преимущества:
  • Pillow подходит для работы с изображениями и создания скриншотов.
  • pyautogui полезна для автоматизации действий пользователя и захвата экрана.
  • mss обеспечивает высокую производительность и кроссплатформенность.
Выбор библиотеки зависит от ваших конкретных потребностей. Экспериментируйте с различными библиотеками и выбирайте ту, которая лучше всего подходит для вашей задачи.
Поделится:
*текст* - жирный, ~текст~ - курсивный, -текст- - зачеркнутый, _текст_ - подчеркнутый
IP-адрес: 18.97.14.81
Часовой пояс: Asia/Almaty
Подробнее

Сервисы

Страницы

Информация