PNG → JPG 转换器,免费

即时将 PNG 图片转换为 JPG 格式。调整质量、为透明区域自定义背景色,并支持批量转换。您的文件从不离开设备。

您的文件永不离开您的设备
将 PNG 文件拖到此处 或点击浏览

支持 PNG · 每个最大 50 MB

「PNG 转 JPG」到底对你的图像做了什么

PNG 和 JPEG 是两种不同的图像格式家族,承担不同的工作。PNG(Portable Network Graphics,1996 年 IETF RFC 2083,2023 年 W3C 第 3 版)使用 DEFLATE 压缩(与 ZIP 和 gzip 相同的无损算法),逐位精确保留每一个像素,并支持 8 位 Alpha 通道以承载透明度。JPEG(1992 年的 ISO/IEC 10918-1)使用可调质量的有损 DCT 压缩,没有 Alpha 通道,并针对连续色调的摄影图像进行了优化。把 PNG 转换为 JPEG 意味着:丢弃 Alpha 通道,让像素数据经过一个有损编码器,并以接受这些取舍来换取通常更小的文件和通用兼容性。

透明度的丢失是最明显的变化。PNG 可以把每一个像素标记为完全不透明、完全透明,或介于两者之间的任何位置。JPEG 没有等价物:每一个 JPEG 像素都是完全不透明。本工具在编码之前会把你的 PNG 合成到你所选的背景色之上(默认白色,或黑色,或通过颜色选择器选择的任何自定义颜色),所以源图像的透明区域在输出中会变成这个背景色。一旦 JPEG 写出,Alpha 通道就永久消失了;你无法再恢复它。

文件大小的走向并不是大多数人以为的那样。对于摄影类的 PNG(一张肖像、一幅风景、一个繁杂的场景),JPEG 输出比源文件小 5 到 10 倍:这就是预期中的收益。对于图形类的 PNG(标志、插画、截图,以及任何具有大面积单色区域的图像),JPEG 输出常常比源 PNG 更大。PNG 的 DEFLATE 把同色长串压缩到几乎为零;JPEG 的 DCT 在那些平滑区域注入噪声,并把高频色彩边界量化成可见的光晕,光晕本身又要消耗比特。一张 50 KB 的标志 PNG 可能产出 200 KB 的 JPEG。如果你的图像主要是平面和锐边,JPEG 是错误方向;停留在 PNG 或转换为 WebP,后者同时处理两种模式都很好。

这个工具的底层原理

转换由 HTML5 Canvas 2D API 加 JSZip(Stuart Knightley,MIT/GPL 双许可证)完成;JSZip 用于多文件批处理。不需要外部解码器,因为每个浏览器都原生解码 PNG。当你拖入 PNG 时,File API 把字节交给一个新的 HTMLImageElement;浏览器把 DEFLATE 编码的 PNG 比特流解压成原始 RGBA 像素,并保留 Alpha 通道。

一个新的内存中 <canvas> 按图像大小创建,然后通过 ctx.fillRect() 用所选背景色填充。PNG 通过 ctx.drawImage() 绘制到画布之上;默认的 source-over 合成模式把 PNG 的 Alpha 与画布背景混合,因此透明像素显示为背景色,半透明边缘平滑过渡。完成合成之后,canvas.toBlob('image/jpeg', 质量/100) 调用浏览器内置的 JPEG 编码器。编码器把 RGBA 转换为 YCbCr,应用可选的色度二次采样,按质量滑块对应的量化表执行 8x8 DCT 与量化,并输出 JPEG 字节流。

对于单个文件,输出 Blob 直接成为可下载的对象 URL。对于多文件批次,JSZip 收集每一个 JPEG 输出并打包成一个 ZIP 归档,浏览器把它作为一次下载呈现。没有任何数据离开标签页。唯一的网络流量是页面初次加载和 JSZip 库(首次访问约 95 KB,之后走缓存)。在转换时打开 DevTools 的网络标签:没有任何请求携带图像数据。页面加载之后把浏览器切到飞行模式,转换器在本地 PNG 上仍可工作。

PNG 与 JPEG 简史

工作原理

  1. 上传 PNG:拖放或选择一个或多个要转换的 PNG 文件。
  2. 自定义:调整质量(60-100%),为任何透明区域选择背景色。
  3. 执行转换:点击「转换为 JPG」。单张图片会直接下载;多张文件会打包为 ZIP。

为什么将 PNG 转换为 JPG?

JPG 是一种有损图片格式,擅长处理包含大量颜色的复杂摄影图像。它产出的文件比 PNG 更小,非常适合网页、邮件附件和快速分享。适用于照片、插图和不需要透明度的图片。PNG 仍更适合需要透明度或无损质量的图形。

功能特性

现实世界里的 PNG 转 JPG 工作流

常见陷阱及其含义

隐私:图像永远不离开你的设备

每一个基于云的 PNG 转 JPG 服务(CloudConvert、Convertio、iLoveIMG、FreeConvert、TinyJPG,以及成打的「png 转 jpg 在线」服务)都会把你的文件上传到运营商的服务器、运行转换,然后把 JPEG 作为下载返还。PNG 文件经常包含没有谁愿意被复制到陌生人硬盘的内容:内部界面与机密文档的截图、身份证件与税表的扫描、签了 NDA 的插画、尚未发布的设计稿、清晰可见人脸的家庭照片。大多数运营商会发布隐私政策,承诺在一两小时内删除上传内容并在传输中加密,较大的服务商持有 ISO/IEC 27001 认证。他们有强烈的商业动机遵守这些政策。但「一小时内删除」并不等于「从未被看到」。在那一小时里,图像内容存在于运营商的基础设施中,对任何具备相应权限的进程或人员可访问,并按相应的留存政策出现在日志和备份中。

本转换器从不上传任何东西。整条流水线(选文件、通过浏览器内置解码器解码 PNG、在背景色上用 Canvas 合成、JPEG 编码、可选 ZIP 打包、下载)都在你的浏览器标签内运行,使用 JavaScript 和 HTML5 Canvas API。没有上传,没有携带图像数据的网络请求,没有日志记录。可以在转换之前打开浏览器开发者工具的网络标签来核实:没有携带图像内容的请求被触发。唯一的网络流量是页面初次加载以及小巧的 JSZip 库(约 95 KB),在首次访问时从 CDN 取一次并缓存。页面加载之后把浏览器切到飞行模式,转换器在本地 PNG 上仍可工作。

什么时候用另一个工具更合适

常见问题

PNG 中的透明区域会怎样?

JPG 不支持透明度。您可以选择背景色(白色、黑色或自定义)来填充透明区域。转换时此颜色会替换透明部分。

应该使用什么质量?

对大多数用途,85-90% 的质量提供良好的视觉效果和明显的大小减小。专业照片使用 90% 以上,普通网页用途使用 75-85%,缩略图和预览使用 60-75%。

可以一次转换多个文件吗?

可以。上传多个 PNG 并对它们应用相同的质量和背景设置。单张文件会直接下载;多张文件会自动打包为 ZIP 文件。

文件大小限制是多少?

每个 PNG 最大 50 MB。总大小取决于您浏览器的可用内存,但通常可以转换累计数百 MB。

我的图片会发送到服务器吗?

不会。所有转换都通过 Canvas API 在您的浏览器中本地完成。您的图片从不离开您的设备,保证隐私和安全。

更多常见问题

为什么我的 JPG 输出比 PNG 输入更大?

因为你的 PNG 是图形内容,而不是摄影内容。PNG 的 DEFLATE 压缩能极好地处理大面积单色区域,常常把它们压到每像素不到一个字节。JPEG 的 DCT 压缩是为连续色调照片调校的;它在平滑区域注入噪声,并把锐利色彩边缘量化成可见的光晕,光晕本身还消耗比特。一张 50 KB 的标志 PNG 可能变成 200 KB 的 JPEG,连同标志边缘周围的光晕一起。对标志、截图、插画、图示或任何平面色彩图形,请停留在 PNG(或通过图像转换器转到 WebP,它同时处理两种模式都很好)。JPEG 只对摄影内容才是正确的目标格式。

Alpha 通道会怎样?

它被永久丢失。JPEG 的格式规范里没有 Alpha 通道。本工具在编码之前会把你的 PNG 合成到你所选的背景色之上(默认白色,或黑色,或通过颜色选择器选择的任何自定义颜色),所以透明像素变成背景色、半透明边缘融入背景。一旦 JPEG 写出,你就无法恢复原始透明度;只能回到源 PNG。如果你需要保留透明度,你真正想要的转换是 PNG 到 WebP(有损或无损),而不是 PNG 到 JPEG。

我应该用白色、黑色还是自定义背景色?

对应图像将被显示的地方。对于要放在白页上的 JPEG(多数文档、多数采用浅色主题的网站、多数邮件),白色是正确选择,也是默认。对于要放在深色背景上的 JPEG(深色主题网站、深色演示幻灯片、黑色纪录片画面),黑色融合得很好。其他情况请使用自定义颜色选择器,并精确匹配目标的背景色。所选背景与实际目标之间的任何不匹配都会在图像原本透明的边缘周围产生可见的彩色镶边。

这个工具能离线工作吗?

可以。PNG 解码器和 JPEG 编码器都内置于每一个浏览器;不会为它们下载任何外部库。本工具唯一加载的库是 JSZip(约 95 KB),用于把多文件批次打包成 ZIP 归档,首次加载时从 CDN 取一次并缓存。之后的访问可以完全离线工作。可以在首次打开页面之后开启飞行模式并转换一个本地 PNG 文件来验证。

EXIF 元数据会被保留吗?

不会。基于 Canvas 的重新编码会移除 EXIF、IPTC 和 XMP 元数据块(相机型号、曝光、GPS 坐标、版权标记)以及嵌入的 ICC 色彩配置文件。输出的 JPEG 仅承载像素数据。对于一般的屏幕分享,这通常是一种隐私上的好事(GPS 坐标和相机序列号不会泄露)。在需要保留元数据的归档流程中,请使用能感知元数据的桌面工具:ImageMagick 配合 -define 选项、jpegtran 配合 -copy all,或 Photoshop 的「导出为」,它们都可以保留 EXIF 和 ICC。

是否有桌面或命令行版本的替代品?

有几个。批量自动化使用 Node.js 的 sharp,它是规范的服务端库:sharp(buf).flatten({background:'#fff'}).jpeg({quality:90}).toBuffer()。任何 shell 下的 ImageMagick:magick input.png -background white -flatten -quality 90 output.jpg。Python 的 Pillow:Image.open(p).convert('RGB').save(out, 'JPEG', quality=90)。要做像本工具这样的一次性交互式工作,推荐的浏览器替代是 Squoosh(Google Chrome Labs,同样客户端运行);它支持更多输出格式,包括 AVIF。Photoshop、Affinity Photo 以及 macOS 上的预览覆盖桌面 GUI 场景。

相关工具