图片处理实用指南

透明 PNG 转 JPG 为什么出现白底?检查半透明边缘与交付底色

同一张透明商品图,在深色页面看起来很好,转成 JPG 后却出现白色矩形。先别把它当成转换失败:交付格式可能根本没有保存透明度的位置。真正要决定的是接收方需要一张带底色的成品,还是能够继续合成的透明素材。

彩色透明玻璃瓶,作为透明度与底色合成的摄影配图
配图:Alexander Grey · Unsplash License

先把问题解决

JPEG 不支持 alpha 透明通道。KitNelo 图片尺寸调整入口在导出 JPEG 时将透明区域填成白色;如果需要透明背景,应保留 PNG。已经与白底混合的边缘,再转回 PNG 也不会自动恢复原来的透明度。

先选交付目标,再选格式

MDN 图片格式说明列出了 JPEG 与 PNG 的透明度差异。这里讨论的是常见 JPEG/JPG,不把其他名称相似的格式当成同一种编码。

打开图片尺寸调整,先用原尺寸做一次对照,暂时不改宽高。这样可以把格式造成的底色变化与缩小造成的边缘变化分开。如果原图在透明状态就有白边,先阅读透明背景边缘检查。

按交付任务选择结果
任务建议结果需要检查
放进不同颜色版式的标志保留 PNG透明区和半透明边缘
要求白底 JPEG 的照片导出 JPEG白底、边缘与实际文件格式
接收方要求其他底色先在合适编辑器完成合成该入口不能选择任意 JPEG 填充色

三个像素解释白底从哪里来

下面是自编的普通 8 位通道合成示例,用来解释操作结果,不是色彩管理或压缩性能测量。完全透明的像素显示底色;不透明像素显示自身;半透明像素同时包含两者。

在简化的通道计算里,50% 不透明的红色 (255,0,0) 放在白色 (255,255,255) 上,得到约 (255,128,128)。放在黑色上则约 (128,0,0)。实际 JPEG 编码、色彩空间和查看器可能使测量值略有不同,因此不要拿这个近似数值当作逐像素保真承诺。

同一源像素在白底上的解释性结果
源像素透明度白底上的结果
任意 RGB0% 不透明白色底色
红色 (255,0,0)50% 不透明约 (255,128,128)
红色 (255,0,0)100% 不透明红色,之后还受 JPEG 有损编码影响

做两份可比较的下载文件

导入一张你有权处理的透明 PNG。先选择 PNG,保持尺寸,处理并下载为透明版;再从同一原图选择 JPEG,处理并下载白底版。不要把上一份 JPEG 当成第二次转换的源图。

处理后预览不能替代下载验收。分别打开两份文件,把 PNG 放在深、浅两种底色上看轮廓;JPEG 放在深底上仍应呈白色矩形,因为它已经是不透明的成品。

  1. 核对原图宽高、文件类型和透明区域,不靠文件扩展名猜测。
  2. 在尺寸入口选择输出格式;保持宽高,JPEG 可先保留默认质量。
  3. 点击处理并预览,再下载;给两份成品加上 transparent 和 white 等可辨认名称。
  4. 在接收方实际使用的页面或软件中查看,检查四角、细线、半透明阴影和文字边缘。

为什么把 JPG 改回 PNG 仍然有白边

白色可能已是像素的一部分。转成 PNG 只是给文件换一种能够保存透明度的容器,并没有告诉程序哪些白色应该透明。商品本身的白色区域更不能一概删除。

修复时回到透明原稿重新导出。只有确实需要重新抠图时才做背景处理,并在黑白底上检查边缘;自动处理可能误删高光或白色物体。为了保留后续调整空间,参考保留原稿、从原稿导出 JPG。

格式回转不能逆向还原

问题示例

透明 PNG → 白底 JPEG → PNG,期望白底自动消失。

修正参考

保留透明原 PNG;白底交付文件始终从原 PNG 重新导出。

首次合成已经丢失源透明度信息,后续换格式不会找回它。

交付前把视觉和格式一起验收

此入口在浏览器本地处理,支持 PNG、JPEG、WebP 输入。当前单文件上限 30 MB,图片最多 4000 万像素、单边最多 16000 像素;浏览器还可能受内存限制。超限时从原稿输出更合适的副本。

白底 JPEG 适合明确要求不透明白底的任务;它不会证明商品图通过任何平台审核。检查底色之后,继续确认接收方尺寸、文件体积和构图要求。

本次格式交付检查

  • PNG 仍能在不同底色上显示透明区。
  • JPEG 白底是预期交付要求,未被误当成透明素材。
  • 细线、阴影、文字和商品高光没有明显破损。
  • 透明原稿、输出格式及两份下载文件均可回查。

常见问题

质量调到 100 能保留透明度吗?

不能。质量调节影响有损编码,并不会给 JPEG 增加 alpha 通道。需要透明度时选支持透明的格式。

四角变白说明原图没有透明吗?

不一定。可能是本次导出将透明区填白;应检查原始 PNG,而不是只看 JPEG。

能在这个入口把 JPEG 底色改成蓝色吗?

当前该入口的透明区 JPEG 填充固定为白色。需要蓝色底时先在支持底色编辑的工作流合成,再导出;不要把预览页面底色当作成品底色。

参考资料与延伸阅读

按步骤开始处理

进入对应工具,预览处理结果,检查导出的文件。

继续阅读