Files
FamReynaBrain/exports/build_cinematic_pdf.py
T
2026-09-22 23:00:26 -04:00

37 lines
1.3 KiB
Python

from pathlib import Path
from PIL import Image, ImageDraw
from reportlab.pdfgen import canvas
from reportlab.lib.utils import ImageReader
root=Path('/Users/adolforeyna/brain/exports')
slides=[]
for i in range(1,13):
p=root/f'emi_cinematic_slide_{i:02d}.png'
image=Image.open(p).convert('RGB')
if image.size==(1600,1000):
image=image.crop((0,50,1600,950))
elif image.size!=(1600,900):
raise ValueError(f'{p}: got {image.size}')
image.save(p,optimize=True)
slides.append((p,image))
pdf=root/'emi_latin_america_cinematic_slides.pdf'
c=canvas.Canvas(str(pdf),pagesize=(1600,900),pageCompression=1)
c.setTitle('EMI — A Vision for Latin America')
c.setAuthor('EMI | Visual summary of Vision_for_Latin_America_final.docx')
for _,image in slides:
c.drawImage(ImageReader(image),0,0,width=1600,height=900)
c.showPage()
c.save()
sheet=Image.new('RGB',(1500,1230),'#d7d8d2')
d=ImageDraw.Draw(sheet)
for i,(p,image) in enumerate(slides):
thumb=image.resize((480,270))
x=15+(i%3)*495; y=15+(i//3)*300
sheet.paste(thumb,(x,y))
d.text((x+8,y+273),f'{i+1:02d} {p.stem}',fill='#172a25')
sheet.save('/tmp/emi-cinematic-contact.png')
print(f'PDF: {pdf} | 12 slides | {pdf.stat().st_size:,} bytes')
print('Contact sheet: /tmp/emi-cinematic-contact.png')