跳到正文
曾亮懿 ZengLiangYi Blog

方形图片工坊

无需安装或上传图片,在浏览器中调整方形构图、铺白底并压缩导出 JPG。

目录 展开 收起

问题:小小的方图,往往需要好几个步骤

准备一张方形图片,通常不只是裁成正方形:主体需要放在合适的位置,空白处需要补白,导出后还可能超过体积限制。如果这些步骤分散在不同工具里,一次简单处理就会变得繁琐。

方形图片工坊把构图、合成与压缩放在一个 HTML 页面中。下载文件后直接打开,就可以在浏览器里完成处理,无需安装应用或启动后端服务。

先把画面放对,再交给工具导出

图中是构图关系示意,不是额外的产品截图。页面首图展示真实编辑界面,使用个人头像作为输入示例。

选择图片

支持 PNG、JPG、WebP 和 GIF 输入。导出格式固定为 JPG,因此透明区域会合成到白色背景上,GIF 也不会保留为动画输出。

调整位置和大小

在画布中拖动图片可以调整位置;拖动四角控制点或滚动鼠标滚轮可以缩放。图片保持原有比例,避免为了填满方框而被拉伸变形。画布之外的内容不会出现在最终的方形构图中。

处理并下载

确认构图后点击“处理并下载”。工具根据当前画布状态生成输出,再压缩 JPG。编辑阶段关注画面,导出阶段负责尺寸和编码,两者职责分开。

压缩不是只改一个 quality 参数

源码以 950000 字节作为体积预算,并结合编码质量和输出尺寸寻找结果:

  1. 从目标输出尺寸开始生成 JPG,先检查较高质量是否已经满足预算。
  2. 如果低质量结果可以满足预算,就在质量区间内搜索,尽量保留更高质量。
  3. 如果低质量仍然过大,就缩小输出尺寸,重新尝试。
  4. 到达最小尺寸时使用兜底结果结束处理,而不是无限重试。

这是一种“体积优先、尽量保留画质”的策略。复杂纹理与简单图形的压缩效果不同,因此不能承诺所有输入都有相同清晰度;最小尺寸兜底也不应被理解成绝对的体积保证。

为什么保留为离线单页工具

选择 适用价值 代价或边界
单个 HTML 文件 下载后直接使用,分发简单 更新时需要获取新文件
Canvas 本地处理 不需要上传图片或等待服务器 受浏览器与设备资源限制
保持比例缩放 避免主体变形 构图需要手动调整
白底 JPG 输出 统一背景和交付格式 不保留透明度或动画
自动搜索压缩结果 减少手动反复试参数 可能降低画质或分辨率

一个合适的使用方式

先选择图片并确定主体位置,观察边缘是否被裁掉,再导出检查最终文件。如果原图包含细小文字、透明标识或需要保留动画,应先判断白底静态 JPG 是否适合这次交付。

图片处理在本地浏览器内完成,不上传服务器。源码与使用方式见 image-tool 仓库。

有问题或想法?

无论是讨论技术实现,还是交流项目思路,都可以给我留言。