daily backup 2026-09-22
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
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')
|
||||
Reference in New Issue
Block a user