如何使用 PNG to JPG
- 在上方工具中选择一个 .png 文件。
- 为透明区域选择白色或黑色背景,再点击“转换为 JPG”。
- 下载前检查实际 JPG 预览、像素尺寸和字节数。
图片在浏览器中解码和编码,无需上传。工具保留解码后的尺寸并生成一张静态 JPG,更改背景会清除旧结果,需要重新转换。若需保留透明度、精确图形或更高采样位深,请保留原始 PNG。
PNG 透明度有不止一种存储方式
PNG 规范 定义了 tRNS 数据块中的调色板透明度和完整 alpha 通道,因此索引 PNG 即使不是 RGBA 文件也可以透明。工具在解码后应用所选纯色背景,半透明像素会与背景混合,原始 RGB 值不会简单地变成完全不透明。
HTML canvas 序列化规范 说明了位图如何编码为图像文件。本工具向浏览器请求 0.92 的 JPEG 质量,这是编码参数,不保证保留 92% 的原始细节。暂无质量滑块、批量转换、缩放或保留高精度的导出选项。
十一次转换:透明度、调色板、精度与大小
2026 年 10 月 6 日,我们在实际工具中选择了九个原创合成 PNG 样本,其中两个透明度样本分别用白底和黑底转换两次。八次生成了可下载的 JPG,三次显示错误。我们保存了实际下载的 JPG,并用 Pillow 独立解码每个输出,而非只检查预览。这些测量仅适用于这组样本和桌面内置浏览器,测试未记录浏览器引擎版本。
| 输入与用途 | PNG 尺寸/字节数 | 实际 JPG 结果 |
|---|---|---|
| RGBA 透明度色带 | 256 × 128 像素 494 字节 | 白底:1,074 字节 黑底:1,060 字节 均为 256 × 128 像素 |
| 索引调色板与 tRNS | 256 × 128 像素 1,125 字节 | 白底:1,074 字节 黑底:1,060 字节 均为 256 × 128 像素 |
| 平面条纹与小字 | 257 × 129 像素 1,244 字节 | JPG:2,742 字节 257 × 129 像素 |
| 固定种子的 RGB 噪声 | 257 × 129 像素 99,720 字节 | JPG:30,943 字节 257 × 129 像素 |
| 相邻的 16 位灰阶 | 256 × 64 像素 253 字节 | JPG:851 字节 256 × 64 像素 |
| 达到边长上限 | 4096 × 8 像素 206 字节 | JPG:1,146 字节 4096 × 8 像素 |
| 超过边长上限一个像素 | 4097 × 8 像素 206 字节 | 拒绝:尺寸超过 4096 像素边长上限。 |
| 被截断的 PNG | 40 字节,图像不完整 | “当前浏览器无法打开此图片” |
| 扩展名为 .png 的文本 | 34 字节,没有 PNG 文件头 | “此文件不是有效的 PNG 文件” |
RGBA 与调色板透明度生成了相同字节
两个 PNG 以不同方式存储同样的四个色带:一个使用颜色类型 6(RGBA),另一个使用颜色类型 3 及 tRNS 透明度表。对于每种背景,保存的 JPG 字节和 SHA-256 哈希均相同。这验证了受控样本中两种表示的解码结果,不代表所有 PNG 变体行为都相同。
白底 JPG 色带中心的 RGB 依次为 (255, 255, 255)、(255, 127, 126)、(0, 0, 254) 和 (191, 255, 192);黑底依次为 (0, 0, 0)、(128, 0, 0)、(0, 0, 254) 和 (0, 65, 1)。半透明红在白底变浅、黑底变暗,完全透明的隐藏粉色没有重新出现。这些是保存后 JPEG 像素的实测值,包含轻微压缩差异。
相邻的两个 16 位源值合并
灰度 PNG 左半值为 32768,右半为 32769,只相差一级,保存 JPG 的两个采样点均为 RGB (128, 128, 128),输出无法区分这两个源值。我们观察的是完整解码与编码流程,此测试无法定位在哪一步合并,也不能确定其他 PNG 的色彩管理表现。
文件能否变小取决于像素内容
平面图形从 1,244 字节增至 2,742 字节,固定种子噪声从 99,720 字节降至 30,943 字节,两者均保留 257 × 129 的奇数尺寸。噪声是可复现的高变化图案,不是真实照片,也不能预测你的照片压缩比。请比较成对下载中的小字和边缘,尺寸不变不代表像素不变。
206 字节、宽 4096 像素的输入成功,同样很小、宽 4097 像素的输入失败,因而可将边长与压缩文件大小区分。截断文件在解码阶段失败,改名文本在文件头校验时失败,每次错误均移除先前下载。未单独测试 20 MiB 或 1600 万像素边界。
如需复现,可使用 生成脚本 和 输出检查脚本。以下 输入清单 和 输出验证记录 包含尺寸、精确字节数、SHA-256 哈希与 RGB 采样值。未来浏览器编码器可能生成不同字节,此处未验证 HDR、ICC 色彩配置保真度、元数据保留、动画处理、其他浏览器或实体手机。
配对样本用于提供可验证的材料。背景选项和预览是常见功能,不能据此认定本工具具备独有的转换优势。
用三张图看实测结果
替换原始 PNG 前,请检查实际像素和字节数,下方图示均采用本页 10 月 6 日的测量数据。
支持的 PNG 与当前工具限制
每次选择一个非空 PNG,最大 20 MiB(20,971,520 字节),解码后每边最多 4096 像素、总计最多 1600 万像素。这是当前实现的限制,不是 PNG 格式的限制。过大尺寸会被拒绝,不会自动缩小;仅有有效扩展名也不足以通过,损坏或不支持的文件会显示错误。
常见问题
为什么透明 PNG 会得到纯色背景?
JPG 不支持透明度,可以选择用白色或黑色填充透明区域。两种存储方式的配对 PNG 表明,半透明颜色也会随背景改变,选择黑底不会恢复源图中不可见的颜色。
索引 PNG 可以有半透明区域吗?
可以,PNG 规范允许通过 tRNS 存储调色板透明度。索引样本使用 0、128、255 和 64 的 alpha 值,白底和黑底输出分别与相应 RGBA 样本字节相同。
PNG to JPG 总能让文件变小吗?
不能,实测平面图形增至 2,742 字节,噪声图降至 30,943 字节。请按实际需求比较下载文件显示的字节数,更换扩展名不保证压缩。
JPG 会保留 PNG 的 16 位精度吗?
请不要用此输出保留更高采样精度。测试中源值 32768 和 32769 合并成相同 JPG 值,一级差别很重要时请保留原始 PNG。