Files
OmniOilPersonal/services/edge-agent/wix/generate_assets.py
Wilman Yesid Farfan Diaz fd3809ab1d
All checks were successful
Build, MSI & Deploy / Build Docker images (push) Successful in 4m47s
Build, MSI & Deploy / Build Edge Agent Binaries (push) Successful in 7s
Build, MSI & Deploy / Deploy to Dokploy (push) Successful in 1s
Build, MSI & Deploy / Build Edge Agent MSI (push) Successful in 34s
Build, MSI & Deploy / Send notification (push) Successful in 0s
fix(installer): traducir instalador a español, corregir tildes y optimizar contraste de fondos
2026-07-11 22:21:46 -05:00

83 lines
3.1 KiB
Python

import os
import sys
import subprocess
# Asegurar que Pillow este instalado
try:
from PIL import Image, ImageDraw, ImageFont
except ImportError:
print("Pillow no esta instalado. Instalando...")
subprocess.check_call([sys.executable, "-m", "pip", "install", "Pillow"])
from PIL import Image, ImageDraw, ImageFont
def generate_assets():
wix_dir = os.path.dirname(os.path.abspath(__file__))
agent_dir = os.path.dirname(wix_dir)
# Rutas
logo_path = os.path.join(agent_dir, "icon_custom.png")
if not os.path.exists(logo_path):
logo_path = os.path.join(agent_dir, "icon.png")
dialog_bmp_path = os.path.join(wix_dir, "dialog.bmp")
banner_bmp_path = os.path.join(wix_dir, "banner.bmp")
# Paleta de colores OmniOil
color_bg = (9, 11, 15) # #090b0f
color_primary = (255, 122, 26) # #ff7a1a
color_text = (244, 247, 251) # #f4f7fb
color_muted = (154, 168, 186) # #9aa8ba
# Cargar logo si existe
logo = None
if os.path.exists(logo_path):
try:
logo = Image.open(logo_path).convert("RGBA")
print(f"Logo cargado desde {logo_path}")
except Exception as e:
print(f"No se pudo cargar el logo: {e}")
# ----------------------------------------------------
# 1. Generar dialog.bmp (493x312) - Bienvenida/Finalizacion
# ----------------------------------------------------
# El fondo general es blanco para que el texto de WiX sea legible.
# El panel de la izquierda es el panel corporativo oscuro con el logo.
img_dialog = Image.new("RGB", (493, 312), (255, 255, 255))
draw_dialog = ImageDraw.Draw(img_dialog)
# Dibujar panel lateral oscuro corporativo
draw_dialog.rectangle([0, 0, 164, 312], fill=(9, 11, 15))
# Linea naranja divisoria
draw_dialog.rectangle([162, 0, 164, 312], fill=color_primary)
# Colocar logo en el panel lateral
if logo:
logo_dialog = logo.resize((120, 120), Image.Resampling.LANCZOS)
# Pegar con canal alfa
img_dialog.paste(logo_dialog, (22, 96), logo_dialog)
# Guardar como BMP de 24 bits
img_dialog.save(dialog_bmp_path, "BMP")
print(f"dialog.bmp generado exitosamente en {dialog_bmp_path}")
# ----------------------------------------------------
# 2. Generar banner.bmp (493x58) - Banner superior interno
# ----------------------------------------------------
# Fondo blanco para que los titulos de las paginas internas de WiX sean legibles.
img_banner = Image.new("RGB", (493, 58), (255, 255, 255))
draw_banner = ImageDraw.Draw(img_banner)
# Linea naranja inferior
draw_banner.rectangle([0, 56, 493, 58], fill=color_primary)
# Colocar logo pequeno a la derecha
if logo:
logo_banner = logo.resize((42, 42), Image.Resampling.LANCZOS)
img_banner.paste(logo_banner, (435, 8), logo_banner)
# Guardar como BMP de 24 bits
img_banner.save(banner_bmp_path, "BMP")
print(f"banner.bmp generado exitosamente en {banner_bmp_path}")
if __name__ == "__main__":
generate_assets()