Fundamentos de PyAutoGUI para Automação com Python

0/20 aulas0%
teoria

Realizando Capturas de Tela Completas ou Parciais com screenshot()

Aprenda sobre realizando capturas de tela completas ou parciais com screenshot()

20 min
Aula 1 de 4

Realizando Capturas de Tela Completas ou Parciais com screenshot()

Bem-vindos à aula sobre captura de tela no PyAutoGUI! 📸 Esta é uma funcionalidade crucial para qualquer projeto de automação que dependa de elementos visuais na tela. Com pyautogui.screenshot(), podemos "ver" o que está acontecendo na tela do computador, seja para depuração ou como entrada para outras funções de reconhecimento de imagem.


1. Introdução: O Olhar do seu Robô 🤖

No universo da automação, muitas vezes precisamos que nosso script interaja com elementos visuais que não possuem um identificador programático fácil (como botões em uma aplicação web). É aqui que a captura de tela se torna indispensável!

A função pyautogui.screenshot() permite que seu script tire uma "foto" da tela do computador, seja ela completa ou apenas uma parte específica. Essa imagem pode ser salva em um arquivo ou manipulada diretamente no código, abrindo caminho para o reconhecimento de imagens e outras lógicas visuais.

Pré-requisito Importante: Para que pyautogui.screenshot() funcione, você precisa ter a biblioteca Pillow (PIL Fork) instalada. Se ainda não a tem, instale-a com:

pip install Pillow

2. Explicação Detalhada: Como Funciona screenshot()

A função pyautogui.screenshot() oferece flexibilidade para capturar a tela de diferentes maneiras:

2.1. Captura de Tela Completa

Quando chamada sem argumentos, screenshot() captura a tela inteira. O resultado é um objeto Image da biblioteca Pillow, que representa a imagem da tela.

Você pode opcionalmente passar um filename para salvar a captura de tela diretamente em um arquivo.

2.2. Captura de Tela Parcial com region

Muitas vezes, você não precisa da tela inteira, mas apenas de uma área específica. Isso é útil para economizar memória, processamento e focar no que realmente importa. O argumento region permite definir uma caixa delimitadora para a captura.

O region é uma tupla de quatro inteiros: (left, top, width, height).

  • left: A coordenada X do canto superior esquerdo da região.
  • top: A coordenada Y do canto superior esquerdo da região.
  • width: A largura da região em pixels.
  • height: A altura da região em pixels.

2.3. Retorno da Função

pyautogui.screenshot() retorna um objeto Image da biblioteca Pillow. Isso significa que você pode usar todas as funcionalidades do Pillow para manipular essa imagem, como redimensionar, cortar, salvar em diferentes formatos, ou até mesmo exibi-la.


3. Código de Exemplo Oficial (e Prático!)

Vamos ver alguns exemplos práticos de como usar pyautogui.screenshot().

Exemplo 1: Capturando e Salvando a Tela Completa

Este exemplo captura a tela inteira e a salva em um arquivo PNG chamado tela_completa.png.

import pyautogui
import time # Para dar tempo de preparar a tela
 
print("Preparando para tirar a captura de tela completa em 3 segundos...")
time.sleep(3) # Dê tempo para você focar na janela que deseja capturar
 
try:
    # Captura a tela inteira e salva em um arquivo
    screenshot_path = "tela_completa.png"
    pyautogui.screenshot(screenshot_path)
    print(f"Captura de tela completa salva em: {screenshot_path}")
 
except Exception as e:
    print(f"Ocorreu um erro ao capturar a tela: {e}")
 

Exemplo 2: Capturando e Salvando uma Região Específica da Tela

Aqui, capturamos apenas uma parte da tela. Você pode ajustar as coordenadas left, top, width e height conforme a sua necessidade.

import pyautogui
import time
 
# As coordenadas (left, top, width, height) são exemplos.
# Você precisará ajustá-las para a sua tela e o que deseja capturar.
# Dica: Use pyautogui.displayMousePosition() para encontrar coordenadas.
region_to_capture = (100, 100, 300, 200) # Exemplo: 300px de largura, 200px de altura, começando em (100, 100)
 
print(f"Preparando para tirar a captura de tela parcial na região {region_to_capture} em 3 segundos...")
time.sleep(3)
 
try:
    # Captura uma região específica da tela e salva em um arquivo
    screenshot_path_partial = "regiao_especifica.png"
    pyautogui.screenshot(screenshot_path_partial, region=region_to_capture)
    print(f"Captura de tela parcial salva em: {screenshot_path_partial}")
 
except Exception as e:
    print(f"Ocorreu um erro ao capturar a região da tela: {e}")
 

Exemplo 3: Obtendo o Objeto Image e Exibindo-o

Este exemplo mostra como obter o objeto Image retornado por screenshot() e usá-lo com Pillow para exibi-lo.

import pyautogui
import time
from PIL import Image # Importa a classe Image do Pillow
 
print("Preparando para tirar a captura de tela e exibi-la em 3 segundos...")
time.sleep(3)
 
try:
    # Captura a tela inteira e obtém o objeto Image
    img_object = pyautogui.screenshot()
    print("Objeto Image da captura de tela obtido.")
 
    # Você pode manipular este objeto, por exemplo, salvá-lo:
    img_object.save("tela_completa_pillow.png")
    print("Captura de tela salva via objeto Pillow.")
 
    # Ou exibi-lo (isso abrirá um visualizador de imagens padrão)
    print("Exibindo a imagem capturada...")
    img_object.show()
 
    # Exemplo de captura parcial e exibição
    region_to_capture_show = (200, 200, 400, 300)
    print(f"Capturando e exibindo uma região específica: {region_to_capture_show}")
    partial_img_object = pyautogui.screenshot(region=region_to_capture_show)
    partial_img_object.show()
 
except Exception as e:
    print(f"Ocorreu um erro: {e}")
 

4. Resumo e Próximos Passos

Nesta aula, exploramos a poderosa função pyautogui.screenshot():

  • Captura de Tela Completa: Sem argumentos, captura toda a tela.
  • Captura de Tela Parcial: Com o argumento region=(left, top, width, height), captura apenas uma área específica.
  • Salvando Arquivos: Pode salvar diretamente em um arquivo PNG, JPG, etc., passando o nome do arquivo.
  • Objeto Image: Retorna um objeto Pillow Image, permitindo manipulação avançada da imagem.
  • Dependência: Requer a biblioteca Pillow instalada (pip install Pillow).

A habilidade de tirar capturas de tela é a base para a próxima etapa em nossa jornada de automação visual: o reconhecimento de imagens! Com uma imagem da tela em mãos, podemos procurar por outras imagens dentro dela, permitindo que nosso robô localize botões, ícones e outros elementos visuais para interagir.

Próximos Passos: Na próxima aula, mergulharemos no reconhecimento de imagens, utilizando as capturas de tela que aprendemos a fazer para encontrar elementos visuais na tela com funções como pyautogui.locateOnScreen(). Fique ligado! 🔍

© 2025 Escola All Dev. Todos os direitos reservados.

Realizando Capturas de Tela Completas ou Parciais com screenshot() - Fundamentos de PyAutoGUI para Automação com Python | escola.all.dev.br