"""Native full-phone absolute RGB diff. t0 amplified x4; t16 raw deltas >16."""
from pathlib import Path
from PIL import Image
import numpy as np,json,shutil
r=Path(__file__).parent; rows=[]
def compare(a,b,label,maps):
 x=np.array(Image.open(a).convert('RGB'),dtype='int16');y=np.array(Image.open(b).convert('RGB'),dtype='int16');d=np.abs(x-y);m=d.max(2)
 rows.append(dict(pair=label,a=a.name,b=b.name,changed=int((m>0).sum()),over16=int((m>16).sum()),pixels=int(m.size)))
 if maps:
  Image.fromarray(np.minimum(d*4,255).astype('uint8')).save(r/(label+'-diff0-x4.png'))
  Image.fromarray(np.where((m>16)[:,:,None],d,0).astype('uint8')).save(r/(label+'-diff16.png'))
for a in sorted(r.glob('*-a.png')):
 b=a.with_name(a.name.replace('-a.png','-b.png'))
 if b.exists():compare(a,b,a.stem[:-2]+'-stability',False)
for s in ('01-dark','01-light','02-dark','07-dark'):
 a=Path('/tmp/issue-24223-final-evidence')/('base-'+s+'-a.png');b=r/('after-'+s+'-a.png')
 if b.exists() and (r/a.name).exists():
  compare(r/a.name,b,'before-after-'+s,True)
(r/'diff-stats.json').write_text(json.dumps(rows,indent=2)+'\n');print(json.dumps(rows,indent=2))
