简体中文

图像和照片·图像转换器和压缩器

将 PNG 转换为 JPEG 时透明度会发生什么变化

· 工作原理

图像格式 透明度 画布

透明棋盘变成产品轮廓后面的固体遮罩
原始 ToolAcre 矢量图

JPEG 没有 Alpha 通道,因此透明像素在转换过程中必须变成某种东西,浏览器的规则是将它们合成为黑色。这篇文章解释了 Alpha、合成步骤以及如何通过选择 WebP 或 PNG 来保持透明度。

产品切口变成了黑色方块——这个转换结果几乎让所有人第一次都感到惊讶

产品切口可能会从 JPEG 转换中返回,并被实心矩形包围。在此工具中,矩形不会强制为黑色:计划带有背景色,聚焦面板以白色开始,并且 `renderPlan` 在绘制位图之前填充整个画布。因此,输出反映了可见的用户选择,而不是未记录的浏览器后备。

使用源副本重现问题并记下选定的遮罩。如果选择白色后出现黑色块,请将实际下载的文件与任何后续处理阶段进行比较,然后再归咎于转换。 ToolAcre 的警告包括放置在透明像素后面的颜色,使计划在 JPEG 编码器接收画布之前可审核。

令人惊讶的实心矩形可以是任何选定的哑光; ToolAcre 默认为白色而不是黑色

透明度在解码的像素表面中表示为颜色旁边的不透明度。产品的格式表记录 PNG 和 WebP 输出支持 alpha,而 JPEG 不支持。这是一个编码能力声明:输入解码器也接受 GIF,但 GIF 是仅解码的并且仅贡献一个静止帧。读取支持和写入支持不得合并到一个列表中。

Alpha 值允许相同的前景在导出后混合到不同的页面背景中。一旦像素被展平到遮罩上,这种灵活性就消失了,因为存储的 JPEG 包含普通的不透明颜色。将 JPEG 转换回 PNG 会创建一个支持 Alpha 的容器,但它无法推断哪些像素以前是透明的或将它们与所选背景分开。

为什么 JPEG 不能保持透明度 - 一种为照片设计的格式,没有“这里什么都没有”的概念

JPEG 输出在 ToolAcre 的格式事实中没有 Alpha 通道,因此完整的输出需要每个像素都有颜色。转换计划提供该颜色,并且渲染器在绘制任何源像素之前将其绘制在目标上。此顺序确保完全透明的区域成为遮罩,部分透明的边界通过正常的画布合成混合。

根据 JPEG 出现的位置选择遮罩。白色目录页偏爱白色;深色幻灯片有利于其实际的深色背景。如果目标背景可能发生变化,JPEG 是错误的可交付成果,因为该决定会过早做出。 PNG 或 WebP 使 Alpha 通道可用于后续布局。

浏览器遵循的合成规则 — 根据规范,透明区域在 JPEG 编码之前混合到纯黑色背景上

该工作簿将黑色合成描述为浏览器规范规则,但实现明确防止意外的依赖于浏览器的填充。 `fillRect` 使用 `plan.background`,并且面板仅在所选格式缺少 Alpha 时才公开颜色输入。更正很重要:告诉用户黑色是不可避免的,这将隐藏专门为避免这种意外而构建的控件。

遮罩字段不是装饰性元数据。它会更改发送到 JPEG 的像素颜色,并且应与格式和质量一起包含在可重现的转换记录中。仅输出的屏幕截图可以使故意的暗遮罩看起来像腐败。捕获平面图可以解释矩形是来自所选背景还是来自后来的查看者。

ToolAcre 在 JPEG 编码之前用用户选择的背景填充透明度

软抗锯齿边缘包含部分透明像素,而不仅仅是一个开或关蒙版。它们的最终颜色取决于构图过程中它们下面的遮罩。当物体首先被压平到白色时,可能会在黑暗的目的地出现苍白的边缘;稍后更改页面无法从不透明的 JPEG 重新计算这些混合边界像素。

ToolAcre 不会公开预乘 alpha 缓冲区或承诺特定的低级解码器表示,因此基于证据的检查是可视化的。针对两个截然不同的遮罩导出相同的徽标,并以原始尺寸比较其轮廓。如果资产必须在两种背景下运行,请保留 alpha,而不是寻找一种妥协的 JPEG 边缘。

应根据所选遮罩检查软边缘结果;预乘内部结构没有暴露

使用带有柔和阴影的透明徽标。首先选择白色并导出JPEG;然后选择深绿色并导出另一个 JPEG。透明区域应该变成每种选定的颜色,而阴影则融入其中。也导出大小不变的 PNG 和 WebP 副本,然后将两者放在图像感知查看器中的浅色和深色测试块上。

PNG 路线使用无损编码器并保持透明度。 WebP 路由保持透明度,但根据应用程序的格式数据仍然有损,即使在质量 100 下也是如此。 JPEG 副本必然是不透明的。没有断言固定的文件大小排名,因为浏览器测量实际编码字节并且内容决定结果。

这不包括什么 - 选择自定义背景颜色、动画透明度和 1 位 GIF 样式蒙版

此工作流程确实涵盖了自定义背景颜色 - 原始轮廓错误地将其排除在外。它不保留 GIF 动画、提供 GIF 输出或提供专门的一位掩码编辑器。 GIF 输入被解码为一个静止帧,并接收与其他接受的输入相同的目标格式规则。

它也不会从不透明源中删除预先存在的彩色背景。仅当透明度到达解码器时,Alpha 保留才有用。如果源已包含白色矩形,则导出到 PNG 无法重新创建丢失的透明度。该任务需要在编辑器中故意删除背景,而不是格式转换。

自定义背景颜色已实现并且属于范围

透明度仅存在于能够代表它的目的地中。 ToolAcre 明确了替代方案:JPEG 获取选定的遮罩,而 PNG 和 WebP 在其记录的编码器行为下保留 alpha。请在转换前阅读警告,因为它描述的是单向像素决策,而不是可逆的显示首选项。

保留原始透明资产为主。仅在了解最终背景后才生成 JPEG 副本,并检查该颜色的软边缘。这保留了灵活的源,同时为收件人提供了他们可以打开的不透明文件,而无需假装稍后的转换可以恢复故意扁平化的 Alpha。