37 lines
1.3 KiB
Python
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')
|