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
![]() |
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:
Script completo
Você pode acessar e testar o script completo acessando o link abaixo:
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!