Logo única: guara.png e guara-s.png
A variante clara tinha artefatos; a arte escura recortada serve aos dois temas. Saem a troca de variante por tema, os arquivos -light e a fonte clara; os arquivos escuros viram guara.png e guara-s.png e o script, o app, o servidor do guara ui e o README usam só eles. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9c09f5dd8a
commit
0a9622fb96
13 files changed
+32
-53
No files matched your search
+18
-24
@@ -1,11 +1,11 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Tira o fundo das logos do Guará e gera as variantes usadas no app, no README e nos ícones.
|
||||
"""Tira o fundo da logo do Guará e gera os arquivos usados no app, no README e nos ícones.
|
||||
|
||||
Entrada (arte original, fundo sólido): assets/logo/guara-dark-fonte.png e guara-light-fonte.png.
|
||||
Saída: apps/gui/ui/guara-dark.png e guara-light.png (768 px, fundo transparente, recortadas e
|
||||
quadradas), guara-dark-s.png e guara-light-s.png (128 px, para barra lateral e favicon) e
|
||||
apps/gui/src-tauri/icons/source.png (ícone do app, sobre o fundo escuro da arte; o CI gera o
|
||||
resto com `tauri icon`).
|
||||
Entrada (arte original, fundo sólido escuro): assets/logo/guara-fonte.png.
|
||||
Saída: apps/gui/ui/guara.png (768 px, fundo transparente, recortada e quadrada), guara-s.png
|
||||
(128 px, para a barra lateral e o favicon) e apps/gui/src-tauri/icons/source.png (ícone do app,
|
||||
sobre o fundo escuro da arte; o CI gera o resto com `tauri icon`). Uma logo só serve aos temas
|
||||
claro e escuro: o laranja lê bem nos dois.
|
||||
|
||||
O fundo é uma cor sólida: sai o que é parecido com ela e está ligado à borda da imagem (sombras
|
||||
escuras dentro do desenho ficam). Na faixa de 3 px ao redor, a cor do desenho é estimada pelos
|
||||
@@ -20,11 +20,9 @@ from PIL import Image
|
||||
RAIZ = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")
|
||||
UI = os.path.join(RAIZ, "apps/gui/ui")
|
||||
ICONES = os.path.join(RAIZ, "apps/gui/src-tauri/icons")
|
||||
# (arquivo de origem, cor do fundo, distância que ainda conta como fundo certo, não usado)
|
||||
VARIANTES = {
|
||||
"dark": ("assets/logo/guara-dark-fonte.png", (10, 16, 28), 9.0, None),
|
||||
"light": ("assets/logo/guara-light-fonte.png", (254, 249, 240), 7.0, None),
|
||||
}
|
||||
FONTE = "assets/logo/guara-fonte.png"
|
||||
FUNDO = (10, 16, 28) # cor do fundo sólido da arte original
|
||||
LIMIAR = 9.0 # distância que ainda conta como fundo certo
|
||||
|
||||
|
||||
def tirar_fundo(path, bg, d0, _d1=None):
|
||||
@@ -161,22 +159,18 @@ def recortar_quadrado(im, margem=0.04, lado=1024):
|
||||
|
||||
|
||||
def main():
|
||||
feitas = {}
|
||||
for nome, (src, bg, d0, _) in VARIANTES.items():
|
||||
im = recortar_quadrado(tirar_fundo(os.path.join(RAIZ, src), bg, d0))
|
||||
feitas[nome] = im
|
||||
for sufixo, lado in (("", 768), ("-s", 128)):
|
||||
im.resize((lado, lado), Image.LANCZOS).save(
|
||||
os.path.join(UI, f"guara-{nome}{sufixo}.png"), optimize=True
|
||||
)
|
||||
print(f"guara-{nome}.png e guara-{nome}-s.png")
|
||||
# ícone do app: a arte escura sobre o fundo escuro da própria arte, com cantos arredondados
|
||||
logo = recortar_quadrado(tirar_fundo(os.path.join(RAIZ, FONTE), FUNDO, LIMIAR))
|
||||
for sufixo, lado in (("", 768), ("-s", 128)):
|
||||
logo.resize((lado, lado), Image.LANCZOS).save(os.path.join(UI, f"guara{sufixo}.png"), optimize=True)
|
||||
print("guara.png e guara-s.png")
|
||||
# ícone do app: a arte sobre o fundo escuro da própria arte, com cantos arredondados
|
||||
from PIL import ImageDraw
|
||||
|
||||
lado = 1024
|
||||
fundo = Image.new("RGBA", (lado, lado), VARIANTES["dark"][1] + (255,))
|
||||
arte = feitas["dark"].resize((round(lado * 0.82),) * 2, Image.LANCZOS)
|
||||
fundo = Image.new("RGBA", (lado, lado), FUNDO + (255,))
|
||||
arte = logo.resize((round(lado * 0.82),) * 2, Image.LANCZOS)
|
||||
fundo.paste(arte, ((lado - arte.width) // 2, (lado - arte.height) // 2), arte)
|
||||
mascara = Image.new("L", (lado, lado), 0)
|
||||
from PIL import ImageDraw
|
||||
ImageDraw.Draw(mascara).rounded_rectangle((0, 0, lado - 1, lado - 1), radius=round(lado * 0.2237), fill=255)
|
||||
icone = Image.new("RGBA", (lado, lado), (0, 0, 0, 0))
|
||||
icone.paste(fundo, (0, 0), mascara)
|
||||
|
||||
Reference in new issue
Block a user