Tiniest2D - Converter PNG para matriz de cores RGBA em hexadecimal
Pedi para o ChatGPT me ajudar e saiu essa ferramenta onde escolhemos uma imagem no formato PNG e então é gerado o texto que o Tiniest2D entende.
É preciso localizar o nome do sprite na seção #SPRITES, depois fazer um enxerto do texto gerado.
Para demonstração excluí muito conteúdo da matriz de pixel para você entender a estrutura e saber onde alterar.
Antes de tudo faça uma cópia, pois qualquer erro pode corromper o seu jogo.
Localize a linha com nome do sprite, não altere ela.
Substitua o conteúdo em amarelo pelo texto gerado.
Requisitos
- Possuir o Python, na internet há muito tutorial como instalar
Dê o comando abaixo para instalar uma lib que manipula imagens
pip install pillow
Para rodar o código
python conversor.py
Após a conversão na mesma pasta vai aparecer um arquivo .txt com o final no nome _tiniest.txt
Código-fonte salve como conversor.py
from tkinter import Tk, Button, Label, filedialog, messagebox
from PIL import Image
import os
def converter():
arquivo = filedialog.askopenfilename(
title="Escolha um PNG",
filetypes=[("PNG", "*.png")]
)
if not arquivo:
return
try:
img = Image.open(arquivo).convert("RGBA")
largura, altura = img.size
linhas = []
linhas.append(f"FRAME 0 {largura} {altura}")
pixels = []
for y in range(altura):
for x in range(largura):
r, g, b, a = img.getpixel((x, y))
pixels.append(f"{r:02X}{g:02X}{b:02X}{a:02X}")
linhas.append(" ".join(pixels))
saida = os.path.splitext(arquivo)[0] + "_tiniest.txt"
with open(saida, "w", encoding="utf-8") as f:
f.write("\n".join(linhas))
messagebox.showinfo(
"Concluído",
f"Arquivo gerado:\n{saida}"
)
except Exception as e:
messagebox.showerror("Erro", str(e))
janela = Tk()
janela.title("PNG -> Tiniest")
janela.geometry("300x120")
janela.resizable(False, False)
Label(
janela,
text="Converter PNG para matriz RGBA hexadecimal"
).pack(pady=15)
Button(
janela,
text="Escolher PNG e Converter",
command=converter,
width=25
).pack()
janela.mainloop()
Comentários
Postar um comentário