一个透明底的 logo、图标或产品抠图,PNG 里看着干干净净,转成 JPG 之后透明区域变成一片黑。 这不是工具坏了,而是 JPEG 格式本身不支持透明。
为什么会变黑
PNG 的每个像素存的是 RGBA 四个值:红、绿、蓝,加上透明度(Alpha)。JPEG 只存 RGB 三个值,没有 Alpha 通道。 转换时透明度这一项必须丢掉,而大多数工具的处理方式是「直接不管」——
问题在于:完全透明的像素,它的 RGB 值往往是 (0,0,0),也就是黑色。透明的时候你看不见它, 一旦把 Alpha 丢掉,这些黑色就露出来了,于是整块透明区域变成黑底。
三种解决办法
方案一:转换时指定填充色(最省事)
支持这个选项的工具,会在合成阶段先垫一层底色(通常选白色)再编码成 JPG,透明区域自然就是白的。 本站的格式转换工具默认就是这么做的:选「转成 JPG」后, 会多出一个「透明区域填充」选项,默认白色,也可以改成其他颜色去配你的页面背景。
方案二:先合成图层,再导出
用 Photoshop、Photopea(网页版)或其他编辑器:新建一个白色背景图层放到最底层 → 把 PNG 拖进来 → 再「导出为 JPG」。这一步的本质和方案一相同,只是手动完成。 顺带能检查一下边缘:如果是抠图素材,边缘的半透明过渡在白底上可能露出白边,需要修一下。
方案三:不改格式,改用 WebP
如果这张图必须保留透明(图标、贴纸、叠加素材、商品抠图),那就别转 JPG。 WebP 同时支持透明和更小的体积,同画质下通常比 PNG 小 60%–80%,比 JPG 还小 25% 左右。 只要你的使用场景不是「对方系统只收 .jpg」,WebP 是更好的选择。
三种格式怎么选
| 格式 | 透明 | 体积 | 适合 |
|---|---|---|---|
| PNG | 支持 | 大(无损) | 图标、截图、需要反复编辑的素材 |
| JPG | 不支持 | 小 | 照片、只能收 jpg 的报名/政务系统 |
| WebP | 支持 | 最小 | 网页配图、透明素材、对体积敏感的场合 |
以一张 1080×1080 的纯色透明图标为例:PNG 大约 100–150KB,转成白底 JPG 后约 30–50KB, 转成 WebP 约 20–30KB。体积差得很明显,但能不能用,取决于对方系统收不收这个格式—— 报名类系统基本只认 jpg/png,网页和 App 素材则可以放心用 WebP。
两个容易忽略的细节
- 半透明边缘会出现白边或黑边:羽化过的抠图边缘,在深色背景上转 JPG 常常留一圈白边。 这不是转换错误,是 Alpha 混合的固有问题——放大到 200% 检查边缘,必要时重抠。
- 别用「改扩展名」的方式换格式:把 a.png 重命名成 a.jpg 并不会真的转换,文件内部仍是 PNG, 有些系统会直接拒收,或者上传后显示异常。要真正编码转换才行。
如果你只是想快点把一张透明图变成白底 JPG,格式转换工具两步就够: 选文件 → 点「转成 JPG」(默认白底)。批量转换会打成 zip 一次下载,全程在浏览器本地完成。