Este blog é um complemento do nosso canal no YouTube. Clique em @CanalQb para seguir e acompanhar nossos vídeos!

Sugestões de pesquisas

Como criar arte ASCII com Python a partir de imagens

#python; #arteascii; #imagens

Transforme imagens em arte ASCII com Python

Você já pensou em converter suas imagens favoritas em obras de arte feitas apenas com caracteres? Neste guia completo, vamos mostrar como usar a linguagem Python e a biblioteca PIL para abrir imagens, exibi-las em uma interface gráfica simples e convertê-las em arte ASCII diretamente no terminal.

Visual da proposta

@CanalQb Python - Abrindo imagem e convertendo para ASCII
@CanalQb

Passo 1: Instalando as bibliotecas necessárias

Antes de começar, você precisará garantir que o Python e as bibliotecas Pillow e tkinter estejam instalados. No terminal, execute:

pip install pillow

tkinter geralmente já vem instalado com o Python. Caso contrário, consulte a documentação do seu sistema operacional.

Passo 2: Abrindo e exibindo a imagem com interface gráfica

O código abaixo abre uma imagem e a exibe usando a interface gráfica básica do Tkinter:

from PIL import Image, ImageTk
import tkinter as tk

caminho_imagem = "screenshot.png"
janela = tk.Tk()
imagem_pillow = Image.open(caminho_imagem)
imagem_tk = ImageTk.PhotoImage(imagem_pillow)
label_imagem = tk.Label(janela, image=imagem_tk)
label_imagem.pack()
janela.mainloop()

Passo 3: Convertendo a imagem em arte ASCII

Neste passo, redimensionamos a imagem e transformamos os pixels em caracteres ASCII:

largura, altura = imagem_pillow.size
fator_reducao = 0.1  # Ajuste conforme desejado

imagem_ascii = imagem_pillow.resize(
    (int(largura * fator_reducao), int(altura * fator_reducao))
).convert('L')  # Converte para tons de cinza

# Tabela de caracteres ASCII por intensidade
tabela_ascii = '@%#*+=-:. '

# Converte os pixels para caracteres ASCII
pixels = imagem_ascii.getdata()
ascii_art = ''.join([tabela_ascii[pixel // 32] for pixel in pixels])
largura_ascii = imagem_ascii.width

# Quebra o texto em linhas
ascii_art = [ascii_art[index:index + largura_ascii] for index in range(0, len(ascii_art), largura_ascii)]

Passo 4: Exibindo o resultado no terminal

O código abaixo imprime a arte ASCII diretamente no terminal:

for linha in ascii_art:
    print(linha)

Resultado esperado

Abaixo, veja dois exemplos do resultado obtido:

@CanalQb
@CanalQb

Script completo

Você pode acessar e testar o script completo acessando o link abaixo:

https://cb.run/usdW

Conclusão

Com poucos comandos em Python, conseguimos transformar uma imagem em arte ASCII, usando apenas bibliotecas simples como PIL e tkinter. Essa técnica pode ser útil para projetos criativos, estudos de processamento de imagem ou apenas como diversão. Experimente com diferentes imagens e níveis de redução para obter resultados únicos e surpreendentes!

Postar um comentário

Comente só assim vamos crescer juntos!
CanalQb mais próximo Quer falar com o CanalQb?
Em que posso te ajudar?
Fale comigo