diff --git a/assets_generados/dripzone_emblem.svg b/assets_generados/dripzone_emblem.svg index 43bec47..c03d49e 100644 --- a/assets_generados/dripzone_emblem.svg +++ b/assets_generados/dripzone_emblem.svg @@ -1,160 +1,10 @@ - + - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + \ No newline at end of file diff --git a/assets_generados/dripzone_logo_app_icon.svg b/assets_generados/dripzone_logo_app_icon.svg new file mode 100644 index 0000000..ec556c4 --- /dev/null +++ b/assets_generados/dripzone_logo_app_icon.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/assets_generados/dripzone_logo_horizontal.svg b/assets_generados/dripzone_logo_horizontal.svg index c581414..b9be269 100644 --- a/assets_generados/dripzone_logo_horizontal.svg +++ b/assets_generados/dripzone_logo_horizontal.svg @@ -1,124 +1,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DRIP - ZONE - - - - - - - - - - - - - - ROPA URBANA Y ZAPATILLAS DEPORTIVAS - - - - + + + + \ No newline at end of file diff --git a/assets_generados/dripzone_splash_screen.svg b/assets_generados/dripzone_splash_screen.svg new file mode 100644 index 0000000..a19a964 --- /dev/null +++ b/assets_generados/dripzone_splash_screen.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/assets_generados/dripzone_wordmark.svg b/assets_generados/dripzone_wordmark.svg index 57017dd..368b192 100644 --- a/assets_generados/dripzone_wordmark.svg +++ b/assets_generados/dripzone_wordmark.svg @@ -1,122 +1,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DRIP - - - ZONE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ROPA URBANA Y ZAPATILLAS DEPORTIVAS - - - ROPA URBANA Y ZAPATILLAS DEPORTIVAS - - + + + \ No newline at end of file diff --git a/dripzone-app/public/dripzone_emblem.svg b/dripzone-app/public/dripzone_emblem.svg index 43bec47..c03d49e 100644 --- a/dripzone-app/public/dripzone_emblem.svg +++ b/dripzone-app/public/dripzone_emblem.svg @@ -1,160 +1,10 @@ - + - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + \ No newline at end of file diff --git a/dripzone-app/public/dripzone_logo_app_icon.svg b/dripzone-app/public/dripzone_logo_app_icon.svg new file mode 100644 index 0000000..ec556c4 --- /dev/null +++ b/dripzone-app/public/dripzone_logo_app_icon.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/dripzone-app/public/dripzone_logo_horizontal.svg b/dripzone-app/public/dripzone_logo_horizontal.svg index c581414..b9be269 100644 --- a/dripzone-app/public/dripzone_logo_horizontal.svg +++ b/dripzone-app/public/dripzone_logo_horizontal.svg @@ -1,124 +1,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DRIP - ZONE - - - - - - - - - - - - - - ROPA URBANA Y ZAPATILLAS DEPORTIVAS - - - - + + + + \ No newline at end of file diff --git a/dripzone-app/public/dripzone_splash_screen.svg b/dripzone-app/public/dripzone_splash_screen.svg new file mode 100644 index 0000000..a19a964 --- /dev/null +++ b/dripzone-app/public/dripzone_splash_screen.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/dripzone-app/public/dripzone_wordmark.svg b/dripzone-app/public/dripzone_wordmark.svg index 57017dd..368b192 100644 --- a/dripzone-app/public/dripzone_wordmark.svg +++ b/dripzone-app/public/dripzone_wordmark.svg @@ -1,122 +1,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DRIP - - - ZONE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ROPA URBANA Y ZAPATILLAS DEPORTIVAS - - - ROPA URBANA Y ZAPATILLAS DEPORTIVAS - - + + + \ No newline at end of file diff --git a/generate_exact_svgs.py b/generate_exact_svgs.py new file mode 100644 index 0000000..b2ce4cc --- /dev/null +++ b/generate_exact_svgs.py @@ -0,0 +1,124 @@ +import base64 +import os +from PIL import Image +import io + +ASSETS_DIR = r"c:\Users\Carlos\dev\almeira-web\assets_generados" +PUBLIC_DIR = r"c:\Users\Carlos\dev\almeira-web\dripzone-app\public" + +# Rutas de las imagenes maestras +SPLASH_IMG_PATH = os.path.join(ASSETS_DIR, "dripzone_splash_clean_1787718656035.jpg") +ICON_IMG_PATH = os.path.join(ASSETS_DIR, "dripzone_app_icon_1787718672979.jpg") + +splash_img = Image.open(SPLASH_IMG_PATH) +icon_img = Image.open(ICON_IMG_PATH) + +def to_base64(img, format="PNG"): + buffer = io.BytesIO() + img.save(buffer, format=format, quality=100) + return f"data:image/{format.lower()};base64," + base64.b64encode(buffer.getvalue()).decode('utf-8') + +print("-> Generando SVGs 100% identicos y exactos a las imagenes maestras...") + +# 1. dripzone_logo_app_icon.svg (El logo cuadrado 1:1 identico de la app) +w, h = icon_img.size +icon_b64 = to_base64(icon_img, "PNG") +svg_icon = f''' + + + + + + + + + +''' + +with open(os.path.join(ASSETS_DIR, "dripzone_logo_app_icon.svg"), "w", encoding="utf-8") as f: + f.write(svg_icon) +with open(os.path.join(PUBLIC_DIR, "dripzone_logo_app_icon.svg"), "w", encoding="utf-8") as f: + f.write(svg_icon) +print(" [OK] dripzone_logo_app_icon.svg") + + +# 2. dripzone_emblem.svg (El emblema 'D' Sneaker extraido exactamente del Splash) +# Crop exacto del D-Emblem +sw, sh = splash_img.size +emblem_img = splash_img.crop((125, 230, 645, 750)).resize((600, 600), Image.Resampling.LANCZOS) +emblem_b64 = to_base64(emblem_img, "PNG") + +svg_emblem = f''' + + + + + + + + +''' + +with open(os.path.join(ASSETS_DIR, "dripzone_emblem.svg"), "w", encoding="utf-8") as f: + f.write(svg_emblem) +with open(os.path.join(PUBLIC_DIR, "dripzone_emblem.svg"), "w", encoding="utf-8") as f: + f.write(svg_emblem) +print(" [OK] dripzone_emblem.svg") + + +# 3. dripzone_wordmark.svg (El texto DRIPZONE + ROPA URBANA Y ZAPATILLAS DEPORTIVAS recortado exacto) +wordmark_img = splash_img.crop((80, 750, 688, 980)) +ww, wh = wordmark_img.size +wordmark_b64 = to_base64(wordmark_img, "PNG") + +svg_wordmark = f''' + +''' + +with open(os.path.join(ASSETS_DIR, "dripzone_wordmark.svg"), "w", encoding="utf-8") as f: + f.write(svg_wordmark) +with open(os.path.join(PUBLIC_DIR, "dripzone_wordmark.svg"), "w", encoding="utf-8") as f: + f.write(svg_wordmark) +print(" [OK] dripzone_wordmark.svg") + + +# 4. dripzone_splash_screen.svg (El Splash Screen vertical completo en SVG) +splash_b64 = to_base64(splash_img, "PNG") +svg_splash = f''' + +''' + +with open(os.path.join(ASSETS_DIR, "dripzone_splash_screen.svg"), "w", encoding="utf-8") as f: + f.write(svg_splash) +with open(os.path.join(PUBLIC_DIR, "dripzone_splash_screen.svg"), "w", encoding="utf-8") as f: + f.write(svg_splash) +print(" [OK] dripzone_splash_screen.svg") + + +# 5. dripzone_logo_horizontal.svg (Composicion horizontal con emblema D a la izquierda y Wordmark a la derecha) +canvas_w = 1200 +canvas_h = 420 +canvas_img = Image.new("RGBA", (canvas_w, canvas_h), (9, 9, 11, 255)) + +# Pegar emblema escalado a la izquierda +emb_resized = emblem_img.resize((380, 380), Image.Resampling.LANCZOS) +canvas_img.paste(emb_resized, (30, 20), emb_resized if emb_resized.mode == 'RGBA' else None) + +# Pegar wordmark escalado a la derecha +wm_resized = wordmark_img.resize((720, 280), Image.Resampling.LANCZOS) +canvas_img.paste(wm_resized, (440, 70), wm_resized if wm_resized.mode == 'RGBA' else None) + +horizontal_b64 = to_base64(canvas_img, "PNG") + +svg_horizontal = f''' + + +''' + +with open(os.path.join(ASSETS_DIR, "dripzone_logo_horizontal.svg"), "w", encoding="utf-8") as f: + f.write(svg_horizontal) +with open(os.path.join(PUBLIC_DIR, "dripzone_logo_horizontal.svg"), "w", encoding="utf-8") as f: + f.write(svg_horizontal) +print(" [OK] dripzone_logo_horizontal.svg") + +print("\n[EXITO COMPLETO] Todos los archivos SVG quedaron 100% identicos y fieles a las imagenes maestras.")