Files
qwen38-flash-next-rtx6000d/scripts/make_qualification_assets.py
T

17 lines
1.2 KiB
Python

"""Generate nonprivate OCR image and 120-second video; requires Pillow/OpenCV/numpy."""
from pathlib import Path
import argparse
import cv2,numpy as np
from PIL import Image,ImageDraw,ImageFont
parser=argparse.ArgumentParser();parser.add_argument('--output',type=Path,default=Path('/data/flash-next/cache/qualification'));p=parser.parse_args().output;p.mkdir(parents=True,exist_ok=True)
im=Image.new('RGB',(2048,1536),'white');draw=ImageDraw.Draw(im)
font=ImageFont.truetype('/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf',72)
for i,s in enumerate(['INVOICE','Verification: SPARK-82741','Amount A: 125','Amount B: 478','Amount C: 765']):draw.text((100,120+i*220),s,font=font,fill='black')
im.save(p/'chart.png')
w=cv2.VideoWriter(str(p/'sequence120.mp4'),cv2.VideoWriter_fourcc(*'mp4v'),2,(1280,720))
assert w.isOpened()
for name,color in [('RED',(0,0,255)),('GREEN',(0,255,0)),('BLUE',(255,0,0)),('YELLOW',(0,255,255)),('PURPLE',(128,0,128)),('WHITE',(255,255,255))]:
for n in range(40):
frame=np.full((720,1280,3),color,dtype=np.uint8);cv2.putText(frame,name,(300,400),cv2.FONT_HERSHEY_SIMPLEX,3,(0,0,0),7);w.write(frame)
w.release();print('Assets generated',[(f.name,f.stat().st_size) for f in p.iterdir()])