收到设计图片后,核对实际格式与像素

进阶离线资源 R1 · 2026-10-15。适合能运行 Python 的技术同事;也可以把约定与原文件交给技术同事协助。此资源读取显式指定的常规静态 PNG,对照已经约定的宽、高与格式输出 JSON 差异报告;JPEG 可以识别实际格式并给出编码像素参考,但完整性需另行核实,不自动给出匹配通过结论。

这是技术子项核对,不是设计交付验收。程序不会修改、转换、旋转、重存或上传原图。报告中的 delivery_approved 固定为空;文字、排版、背景、授权、颜色和业务内容仍须人工检查。PNG 透明背景一律不自动判断。

1. 准备受测环境

本包实际复测环境为 Python 3.10.7、Pillow 11.3.0。Pillow 是第三方依赖,不包含在下载包里;其他版本与客户电脑未验证。本工具不自动安装依赖、不联网;首次安装依赖需要由你或技术同事在自行管理的环境中完成。

python3 --version
python3 -c "import PIL; print(PIL.__version__)"

requirements.txt 记录用于复现本轮验证的依赖版本。不要把版本锁定当作最新安全版本推荐;在你自己的环境安装或升级依赖后应重新执行本包测试,再处理可信来源的文件。

2. 先填写约定

复制并修改 requirements.json。下列 120×60 只是合成例子的约定,不是网页、海报或印刷行业标准。两个尺寸均以像素为单位;没有约定的尺寸写 null,程序会记为 not_agreed。

{
  "schema_version": 1,
  "allowed_formats": ["PNG", "JPEG"],
  "expected_width_px": 120,
  "expected_height_px": 60,
  "transparency_requirement": "not_agreed"
}

3. 运行核对

在解压目录打开终端,显式列出收到的文件;路径含空格要加引号。程序不递归扫描文件夹。报告路径必须尚不存在,输出目录需已存在。

python3 image_preflight.py --requirements requirements.json --output 核对报告-01.json "fixtures/F01-72ppi.png" "fixtures/F02-normal.jpg"

把样例路径替换为你实际收到的图片路径。请保留原始副本。JSON 报告包含文件名、实际格式、编码像素、原文件前后 SHA256 等信息,转发报告前检查文件名是否含项目或个人信息。

上述命令包含一个 JPEG,因此预期退出码为1,JPEG结果为“需另核完整性”,不是命令执行失败。若只想先复测 PNG 正例,可以只列 fixtures/F01-72ppi.png,使用一个尚不存在的新报告名。

4. 阅读结果

进程退出码:0 为所有文件的格式与像素技术子项一致;1 为至少一个不符、不支持、未约定、需要人工或超限;2 为约定、命令或输出失败。即使退出码0,PNG背景等人工项也仍待检查。

5. 支持范围与保护

6. 复测样例

11份自制样例预期覆盖8个情景:相同像素不同PPI、普通JPEG、宽度不符、后缀伪装、3种PNG透明信息、EXIF旋转、APNG、截断文件。它们全部是人工合成技术测试,不是真实客户稿、供给或业绩证据。

python3 test_cli.py

该命令在本目录临时创建边界样例与新报告,结束后清理;不改11份固定样例,结果写入 test-results.json。create_fixtures.py 仅用于向空的fixtures目录生成新样例,已有样例时拒绝执行。未进行 Photoshop、浏览器操作或客户终端实测。

技术依据

读取日期2026-10-15。Pillow Image:open、verify、load与解压保护;Pillow APNG帧语义;W3C PNG规范;Adobe像素与分辨率说明。官方文档描述不等于本机原软件操作实测。