#!/usr/bin/env python3 """make_mem_samples.py — 为 test_reader_membudget.c 生成 JPEG 夹具(M22)。 用法:python3 make_mem_samples.py <输出目录> 依赖:Pillow。没有 Pillow 时测试自动 SKIP JPEG 断言(BMP/PNG 夹具由 C 直接写)。 刻意用**结构化图案**而不是噪声:文件极小、解码路径与真实漫画页一致(白底 + 分镜框)。 page.jpg 1000x1500 baseline(1.5MP,真机崩溃页所在档位) big4.jpg 2000x2000 baseline(4MP,手机照片档) prog.jpg 1000x1500 progressive(SOF2:验证渐进识别 + 峰值模型) """ import os import sys from PIL import Image, ImageDraw def pattern(w, h): im = Image.new("RGB", (w, h), (248, 247, 244)) d = ImageDraw.Draw(im) for k in range(0, min(w, h) - 200, 70): d.rectangle([20 + k, 20 + k, 160 + k, 120 + k], outline=(10, 10, 12), width=3) return im def main(): if len(sys.argv) != 2: print(__doc__) return 2 out = sys.argv[1] os.makedirs(out, exist_ok=True) pattern(1000, 1500).save(os.path.join(out, "page.jpg"), "JPEG", quality=60, subsampling=2) pattern(2000, 2000).save(os.path.join(out, "big4.jpg"), "JPEG", quality=60, subsampling=2) pattern(1000, 1500).save(os.path.join(out, "prog.jpg"), "JPEG", quality=60, subsampling=2, progressive=True) return 0 if __name__ == "__main__": sys.exit(main())