用途:检查图片是否满足 300 DPI 印刷标准,并用 AI 超分辨率技术对低分辨率图片进行还原放大,也可对混合 DPI 的文件夹做批量处理。
主要能力:check 命令输出 DPI、像素尺寸、可打印尺寸、是否达标及建议放大倍数;upscale 命令按 2/3/4 倍放大,可仅处理低于 --min-dpi 的图片,支持降噪与面部增强。输出报告为 JSON,还原图片保存为 <原名>_upscaled.<扩展名>,保留 EXIF 并将 DPI 元数据设为目标值。算法先算 print_size_cm=(像素/dpi)*2.54 与 recommended_scale=目标DPI/平均DPI;超分回退链为 Real-ESRGAN→OpenCV DNN→PIL Lanczos,RGBA 透明通道单独放大后合并。
使用方式:需提供 --input 图片或文件夹路径。检查单图:python scripts/main.py check --input image.jpg,加 --json 输出到 stdout;批量检查:python scripts/main.py check --input ./images/ --output report.json。超分:python scripts/main.py upscale --input image.jpg --output upscaled.jpg --scale 4;批量:python scripts/main.py upscale --input ./images/ --output ./output/ --min-dpi 300 --scale 2。可用 python scripts/main.py --demo 演示。依赖 Python>=3.8、Pillow>=9.0.0、opencv-python>=4.5.0、numpy>=1.21.0,realesrgan 为可选,安装 pip install -r requirements.txt。
限制:超分无法创造不存在的信息,极模糊图片提升有限;GPU 加速需 CUDA 环境(可选);批量超分模式暂不保存 JSON 汇总报告(仅 check 模式可写入 --output);请求超出范围或缺 --input 时不应继续执行;出错时脚本以非零码退出。脚本失败可退回手工方式:from PIL import Image; img = Image.open('file.jpg'); print(img.info.get('dpi'))。