[object Object]

← back to Beverlyhillsvideos

auto-save: 2026-08-06T08:19:59 (1 files) — filmgen/app_icon.py

a08b1b44bca6d26e0566d5ae4d36ce35465deb8d · 2026-08-06 08:20:02 -0700 · Steve Abrams

Files touched

Diff

commit a08b1b44bca6d26e0566d5ae4d36ce35465deb8d
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Aug 6 08:20:02 2026 -0700

    auto-save: 2026-08-06T08:19:59 (1 files) — filmgen/app_icon.py
---
 filmgen/app_icon.py | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/filmgen/app_icon.py b/filmgen/app_icon.py
new file mode 100644
index 0000000..984ad01
--- /dev/null
+++ b/filmgen/app_icon.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python3
+from PIL import Image, ImageDraw, ImageFont, ImageFilter
+OUT="/Users/macstudio3/Projects/beverlyhillsvideos-app/assets"
+CREAM=(246,243,236); INK=(21,19,16); GREEN=(31,61,48); GOLD=(184,147,90); MUTED=(150,143,130)
+SERIF="/System/Library/Fonts/Supplemental/Didot.ttc"; SANS="filmgen/fonts/Jost.ttf"
+def sf(s,i=0): return ImageFont.truetype(SERIF,s,index=i)
+def jf(s): return ImageFont.truetype(SANS,s)
+def ctr(d,cx,y,t,f,fill):
+    w=d.textlength(t,font=f); d.text((cx-w/2,y),t,font=f,fill=fill); return w
+def track(d,cx,y,t,f,fill,tr):
+    ws=[d.textlength(c,font=f) for c in t]; tot=sum(ws)+tr*(len(t)-1); x=cx-tot/2
+    for c,w in zip(t,ws): d.text((x,y),c,font=f,fill=fill); x+=w+tr
+# ICON 1024 — NO transparency, NO rounded corners (Apple masks)
+S=1024; img=Image.new("RGB",(S,S),GREEN); d=ImageDraw.Draw(img)
+vig=Image.new("L",(S,S),0); ImageDraw.Draw(vig).ellipse([-S*0.3,-S*0.3,S*1.3,S*1.3],fill=70)
+vig=vig.filter(ImageFilter.GaussianBlur(200)); img=Image.composite(img,Image.new("RGB",(S,S),(8,7,6)),vig); d=ImageDraw.Draw(img)
+m=int(S*0.10); d.line([(S/2-70,S*0.30),(S/2+70,S*0.30)],fill=GOLD,width=3)
+ctr(d,S/2,S*0.33,"BHV",sf(300),GOLD)
+track(d,S/2,S*0.70,"BEVERLY HILLS VIDEOS",jf(30),CREAM,7)
+img.save(f"{OUT}/icon.png")
+# SPLASH 1284x2778 (portrait), ink ground, centered wordmark
+W,H=1284,2778; sp=Image.new("RGB",(W,H),INK); ds=ImageDraw.Draw(sp)
+track(ds,W/2,H*0.44,"THE INSIDER FILM GUIDE",jf(26),GOLD,10)
+ctr(ds,W/2,H*0.47,"BEVERLY HILLS",sf(120),CREAM)
+ctr(ds,W/2,H*0.47+130,"VIDEOS",sf(120),CREAM)
+ds.line([(W/2-70,H*0.62),(W/2+70,H*0.62)],fill=GOLD,width=3)
+sp.save(f"{OUT}/splash.png")
+# adaptive/foreground square 1024 transparent-ish (use icon)
+print("icon.png 1024, splash.png 1284x2778 ->", OUT)

← ef5b555 map: add 25 verified-open restaurants (44 pins, all wired to  ·  back to Beverlyhillsvideos  ·  chore: v1.1.0 (session close — doctors/attorneys map, 44-fil 6cdcaff →