Você está aqui: Python ::: PyAutoGUI ::: Imagens e Processamento de Imagens

Como tirar um print da tela e salvar como PNG usando Python, PyAutoGUI, OpenCV e NumPy

Quantidade de visualizações: 2048 vezes
Nesta dica mostrarei como podemos combinar três bibliotecas muito úteis do Python para desenvolver uma aplicação que tira um print da tela e o salva como imagem. Em nosso caso a imagem será salva como PNG.

Se você ainda não tem esses módulos instalados no seu Python, aqui no site você encontrará o passo-a-passo sobre como instalar e testá-las devidamente.

Neste exemplo eu usei o método screenshot() do PyAutoGUI para tirar o print da tela. Em seguida usamos numpy.array() para converter o resultado em uma matriz do NumPy. Os passos seguintes foram o uso da função cvtColor() do OpenCV para converter a matriz em imagem e, finalmente, salvamos a imagem usando a função imwrite() do OpenCV.

Veja a seguir o código Python completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos importar os módulos necessários
import cv2
import pyautogui
import numpy

# método principal
def main():
  # primeiro adquirimos o arquivo PIL
  arquivo_pil = pyautogui.screenshot()

  # convertemos o arquivo PIL para uma matriz da NumPy
  matriz_imagem = numpy.array(arquivo_pil)

  # agora construímos a imagem usando o método cvtColor() da OpenCV
  imagem = cv2.cvtColor(matriz_imagem, cv2.COLOR_RGB2BGR)

  # e finalmente salvamos a imagem
  cv2.imwrite('print_tela.png', imagem)

if __name__== "__main__":
  main()


Link para compartilhar na Internet ou com seus amigos:

Python ::: Dicas & Truques ::: Data e Hora

Como formatar a data e hora atual em Python usando a função strftime() da classe datetime

Quantidade de visualizações: 9955 vezes
Nesta dica eu vou mostrar como é possível usar o método strftime() da classe datetime para formatar e mostrar a data e hora atual no Python.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

from datetime import datetime
import locale

def main():
  # Configurações do usuário
  locale.setlocale(locale.LC_ALL, '')
 
  # Obtém um datetime da data e hora atual
  hoje = datetime.today()
 
  # Exibe a data atual formatada
  data = hoje.strftime("Hoje é %A, %d de %B de %Y")
  print(data)
 
if __name__== "__main__":
  main()

Ao executar este código nós teremos o seguinte resultado:

Hoje é segunda-feira, 08 de março de 2019


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico

Exercício Resolvido de Python - Como ler um número inteiro e imprimir seu sucessor e seu antecessor em Python

Quantidade de visualizações: 1289 vezes
Pergunta/Tarefa:

Escreva um programa Python para ler um número inteiro e imprimir seu sucessor e seu antecessor. O usuário poderá informar um valor positivo ou negativo.

Sua saída deverá ser parecida com:

Informe um número inteiro: 16
O número informado foi: 16
O antecessor é 15
O sucessor é: 17
Resposta/Solução:

Veja a resolução comentada deste exercício usando Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# função principal do programa
def main():
  # vamos pedir para o usuário informar um número inteiro
  numero = int(input("Informe um número inteiro: "))
    
  # vamos calcular o sucessor do número informado
  sucessor = numero + 1
    
  # vamos calcular o antecessor do número informado
  antecessor = numero - 1
    
  # e agora mostramos os resultados
  print("O número informado foi: {0}".format(numero))
  print("O antecessor é {0}".format(antecessor))
  print("O sucessor é: {0}".format(sucessor))
  
if __name__== "__main__":
  main()



Python ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular a apótema de um polígono regular de N lados em Python

Quantidade de visualizações: 587 vezes
Uma das formas mais comuns de se obter a área de um polígono regular é usando a seguinte fórmula:

\[\text{A} = \frac{1}{2} \cdot \text{p} \cdot \text{a} \]

Onde:

p = Perímetro, ou seja, a soma dos comprimentos de todos os lados.
a = Apótema, isto é, uma parte que une o centro do polígono ao meio de qualquer lado que esteja perpendicular.

Agora que já estamos alinhados, saiba que calcular a apótema de um polígono regular "na mão" é fácil, já que só precisamos medir a distância de dois lados opostos e dividir por dois ou traçar linhas cruzadas e medir a distância de um dos lados até a interseção dessas linhas. No entanto, em programação a coisa já é um pouco mais complicada.

Nesta dica mostrarei como podemos realizar esta tarefa em Python. Para isso usaremos alguns truques de trigonometria. Comece analisando a seguinte imagem:



Note que temos um pentágono com cada lado medindo 4 metros. Recorde que um pentágono é um polígono regular de 5 lados. Para deixar a dica mais didática eu coloquei também uma linha azul representando a apótema do polígono e as linhas cruzadas.

Veja agora o código Python que recebe a quantidade de lados do polígono, o comprimento dos lados e retorna a apótema:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos importar o módulo Math
import math

# função que calcula e retorna a apótema de um
# polítono regular
def calcular_apotema(lados, comprimento):
  # a quantidade de lados e o comprimento deles
  # não podem ser negativos
  if lados < 0 or comprimento < 0:
    return -1
 
  # calculamos a apótema
  return (comprimento / (2 * math.tan((180 / lados)
    * math.pi / 180)))
  
# função principal do programa
def main():
  # vamos ler a quantidade de lados
  lados = int(input("Informe a quantidade de lados: "))
  
  # vamos ler o comprimento dos lados
  comprimento = int(input("Informe o comprimento dos lados: "))

  # e agora calculamos a apótema dos polígono
  apotema = calcular_apotema(lados, comprimento)

  # e mostramos o resultado
  print("A apótema do polígono é: {0}".format(apotema))

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Informe a quantidade de lados: 5
Informe o comprimento dos lados: 4
A apótema do polígono é: 2.7527638409423476


Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Locação da obra

Locar ou marcar a obra é uma das etapas de maior importância da construção. Sobre essa etapa, assinale a alternativa que apresenta a afirmação verdadeira.

A) A demarcação dos pontos que definem o edifício no terreno é feita a partir de um referencial previamente definido, considerando-se três coordenadas, sendo duas planimétricas e uma altimétrica.

B) Para a locação da obra, são necessários somente os projetos de estrutura e de arquitetura.

C) A locação da obra deve ser realizada somente após a movimentação de terra e a execução das fundações.

D) As tábuas que compõem os quadros de madeira (gabaritos) só precisam ser niveladas nos casos em que o terreno possui desnível superior a um metro.

E) O gabarito somente poderá ser desmontado após a execução da totalidade da estrutura de concreto.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Instalações prediais de combate a incêndio

A água é um excelente agente extintor de incêndio e, por isso, é utilizada tanto em sistemas de proteção por chuveiros automáticos quanto em sistemas hidráulicos preventivos.
O sistema hidráulico preventivo é dividido em três subsistemas que auxiliam o seu funcionamento.

Sobre esses subsistemas, analise as afirmativas a seguir e assinale-as com V (verdadeiro) ou F (falso):

( ) O subsistema de reservação deve ter reservatório elevado, cuja água pode ser utilizada também para abastecimento da edificação.

( ) O subsistema de pressurização deve ser capaz de transportar água nas condições adequadas de vazão e pressão para extinguir o fogo.

( ) O subsistema de comando é responsável pelo acionamento do sistema de hidrantes, cujo operador deve acionar manualmente a bomba de incêndio.

Assinale a alternativa que apresenta a sequência correta:

A) F - F - F.

B) V - V - F.

C) F - V - F.

D) F - V - V.

E) V - V - V.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual das formas abaixo é válida para a criação de um DICIONÁRIO em Python?

A) estados = ["SP": "SÃO PAULO", "GO": "GOIÁS"]

B) estados = ("SP": "SÃO PAULO", "GO": "GOIÁS")

C) estados = set("SP": "SÃO PAULO", "GO": "GOIÁS")

D) estados = "SP": "SÃO PAULO", "GO": "GOIÁS"

E) estados = {"SP": "SÃO PAULO", "GO": "GOIÁS"}
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Água Fria: Reservatórios

Orienta-se que a limpeza de um reservatório seja feita a cada 6 meses para garantir a qualidade da água armazenada. Sobre o procedimento de limpeza é correto afirmar:

A) Deve-se fechar o registro de entrada de água no reservatório, de preferência em dia de menor consumo, e aproveitar a água existente no reservatório para a limpeza.

B) Havendo iodo em excesso, esvaziar o reservatório através da tubulação de recalque, abrindo o seu respectivo registro de fechamento.

C) Após a primeira etapa da limpeza deve-se abrir o registro de distribuição da rede predial e soltar a água da lavagem pelas torneiras da edificação.

D) A limpeza deve ser feita com sabão ou detergente líquido para garantir a eficiência.

E) Para desinfecção final do reservatório deve-se adicionar água sanitária e encher normalmente o reservatório para utilização.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Classificação de turbinas

O processo de conversão de energia hidráulica em energia mecânica em uma turbina pode também ser utilizado para uma classificação em turbinas de ação ou de reação.

Considerando as turbinas de reação, qual afirmativa está correta?

A) As turbinas de reação são similares às de ação e operam com pressão variável.

B) As turbinas de reação são as turbinas que têm pressão constante no sistema.

C) Nas turbinas de reação, a água tem pressão variando desde a entrada até a saída.

D) As turbinas de ação correspondem a um subgrupo das turbinas de reação mista.

E) Nas turbinas de reação, o fluido converte energia mecânica em energia hidráulica.
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 46 usuários muito felizes estudando em nosso site.