from pathlib import Path
from PIL import Image, ImageDraw, ImageFont
root=Path('/tmp/lead-29548-r1/evidence-capture-2')
font=ImageFont.load_default(size=18)
sets=[('W1-desktop-sheet',[('W1','1440-dark'),('W1','1440-light')],640),('W1-narrow-sheet',[('W1','390-dark'),('W1','390-light')],390),('W1-narrow-timeline-sheet',[('W1','390-dark-timeline'),('W1','390-light-timeline')],390),('W2-sheet',[('W2','dismissed')],640),('W3-sheet',[('W3','1440-dark')],640),('Mobile-sheet',[('M1','android-dark'),('M2','android-dark')],540),('D1-sheet',[('D1','1440-dark')],640),('P1-sheet',[('P1','1440-dark')],640)]
for name,rows,width in sets:
 images=[]
 for row,variant in rows:
  files=[f'{row}-before-{variant}.png',f'{row}-after-{variant}.png',f'{row}-{variant}-Diff0.png',f'{row}-{variant}-DiffT.png']
  line=[]
  for f in files:
   im=Image.open(root/f).convert('RGB');im=im.resize((width,round(im.height*width/im.width)),Image.Resampling.LANCZOS);line.append((f,im))
  images.append(line)
 height=sum(max(im.height for _,im in line)+76 for line in images)
 sheet=Image.new('RGB',(width*4,height),'#202124');draw=ImageDraw.Draw(sheet)
 y=0
 for (row,variant),line in zip(rows,images):
  for col,(f,im) in enumerate(line):
   label=['Before 6f41364805','After 941452f31c','Diff0 >0/255 (magenta)','DiffT >16/255 (amber)'][col]
   draw.text((col*width+12,y+8),label,font=font,fill='white')
   draw.text((col*width+12,y+36),f'{row}: {variant}',font=font,fill='#d0d0d0')
   sheet.paste(im,(col*width,y+70))
  y+=max(im.height for _,im in line)+76
 sheet.save(root/(name+'.png'))
 print(name,sheet.size)
