Development journal · SimplePortrait development notes 1

SimplePortrait development notes I: getting the image pipeline right

从证件照制作需求出发,记录首版怎样确定本地处理边界、拆分构图与输出参数,并建立可继续迭代的编辑 cores心。

SimplePortraitImage processingPrivacy designProduct design

Why define boundaries before adding features

简照最初要解决的是一个明确问题:让用户在浏览器里完成证件照的规格选择、构图、背景处理和导出,不必先上传原图,也不必理解一整套专业图像软件。这个目标决定了第一版必须先保证链路清晰、结果可控,再考虑更多特效。

Projects把“图片默认留在当前浏览器处理”设为基础原则,并明确不代表政府、学校、考试或证件签发机构。工具负责帮助生成符合输入参数的图片,但不能替代目标机构的最终审 cores。

  • 输入支持 JPEG、PNG 与 WebP,并设置体积、最长边和总像素限制。
  • 用户可以跳过抠图,直接进入构图与导出。
  • 构图Status与最终像素、毫米、DPI 等输出参数分开管理。

How the first workflow was separated

第一版围绕编辑 cores心、规格与构图、背景处理、导出和Testing搭起骨架。移动、缩放、旋转属于构图;像素、毫米、DPI、格式、质量和目标文件大小属于输出。把两类Status分开后,用户修改导出规格时,不会无意中破坏已经确认的画面位置。

证件照只是第一个具体场景,因此底层能力没有写成只能服务单一尺寸。标准规格与自定义规格共同进入同一条处理链,为后续独立的压缩、抠图和尺寸工具留下空间。

v0.1.0 to v0.2.0: explaining the product as well as building it

2026 年 9 月 16 日,v0.1.0 完成基础编辑与文档Testing框架;同日的 v0.2.0 继续补齐公开隐私页面、部署文档、语言与Theme调整。对于处理个人照片的工具,说明数据在哪里处理、网站不代表哪些机构,与功能本身同样重要。

这一Stage留下的不是一份“已经完成”的结论,而是一组Future releases必须继续遵守的约束:Local first、流程可跳过、参数不互相污染、发布前必须完成 cores心Testing和静态构建。

End of field note