PNG → JPG 转换器,免费
即时将 PNG 图片转换为 JPG 格式。调整质量、为透明区域自定义背景色,并支持批量转换。您的文件从不离开设备。
支持 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 简史
- JPEG,1992。 ITU-T T.81 / ISO/IEC 10918-1,由 Joint Photographic Experts Group(1986 年成立)标准化。8x8 DCT 块、带可选色度二次采样的 YCbCr 颜色空间、按人眼视觉调校的量化表。无 Alpha 通道,有损压缩。让照片丰富的网络成为可能的格式。
- LZW 专利危机,1994-1995。 Unisys 开始就 GIF 使用的 LZW 压缩算法主张专利权,要求生成 GIF 文件的软件支付授权费。网络社区围绕一种不受专利约束的替代品组织起来。
- PNG 1.0,1996 年 1 月。 Thomas Boutell、Mark Adler 以及由 CompuServe 主导的工作组在 IETF 上以 RFC 2083 发布 PNG。DEFLATE 压缩(与 zlib 和 ZIP 相同的 LZ77+Huffman 算法,同样不受专利约束)替代了 LZW。完整的 8 位 Alpha 通道、始终无损、免版税。1997 年成为 W3C 推荐标准。
- PNG 成为网络的无损格式,1990 年代末期。 浏览器支持在 IE 4-6 与 Netscape 4+ 上大约到 1999 年趋于稳定。PNG 迅速成为标志、截图、图标以及任何需要透明度或像素级精确渲染的图形的标准。JPEG 仍然是照片的标准。
- ISO 标准化与 APNG,2003-2010。 PNG 在 2003 年成为 ISO/IEC 15948。Mozilla 于 2004 年以 Firefox 扩展形式开发 APNG(动画 PNG);2014 年获得 Safari 支持,2017 年获得 Chrome 支持,但 W3C 的 PNG 工作组直到 2023 年第 3 版才正式采纳。
- PNG 第 3 版,2023。 W3C 发布了 PNG 第 3 版,正式支持 HDR(cICP 块)、APNG 动画以及标准化的 EXIF 元数据块(eXIf 块)。在 JPEG 问世三十多年后,这两种格式在网络上仍然占据主导地位,WebP 和 AVIF 正在赢得空间但尚未取代它们。
工作原理
- 上传 PNG:拖放或选择一个或多个要转换的 PNG 文件。
- 自定义:调整质量(60-100%),为任何透明区域选择背景色。
- 执行转换:点击「转换为 JPG」。单张图片会直接下载;多张文件会打包为 ZIP。
为什么将 PNG 转换为 JPG?
JPG 是一种有损图片格式,擅长处理包含大量颜色的复杂摄影图像。它产出的文件比 PNG 更小,非常适合网页、邮件附件和快速分享。适用于照片、插图和不需要透明度的图片。PNG 仍更适合需要透明度或无损质量的图形。
功能特性
- 批量转换:一次转换多个 PNG 文件。单张图片直接下载;多张会打包为 ZIP。
- 质量控制:在 60% 到 100% 之间选择压缩质量,平衡文件大小与视觉质量。
- 透明度处理:设置背景色(白色、黑色或自定义)以替换 PNG 的透明区域。
- 隐私:所有转换都在您的浏览器中本地完成。不上传到服务器。
- 大小预览:查看转换前后的大小,了解压缩的效果。
现实世界里的 PNG 转 JPG 工作流
- 为网络缩减摄影类 PNG 的体积。 一台相机、一款设计应用或一条渲染流水线把照片导出为 PNG。托管的大小上限或者页面体重预算要求它更小。质量 85 的 JPEG 把体积削减 5 到 10 倍,对摄影内容看不出画质变化。这是规范用法,也是 JPEG 毫无疑问是正确目标格式的场景。
- 电子邮件附件。 Gmail、Outlook 和 Apple Mail 都把附件限制在每条消息 25 MB。来自手机或单反的高分辨率 PNG 文件夹很快就触顶。转换为质量 85 的 JPEG 通常能腾出空间,让你在一封邮件里发送所有内容,而不必拆成多封发送或迁到云端分享链接。
- 社交媒体上传。 Twitter/X、Facebook、Instagram 和 LinkedIn 都会在上传时用各自的算法把图片重新压缩为 JPEG。先转换让你掌控质量的取舍,而不是把决定权交给平台的编码器。以质量 85-90 预压缩的 JPEG 形式上传的帖子,通常比让平台从你的 PNG 重新压缩出来看着要好。
- 电商商品照片。 Etsy、eBay、Shopify、亚马逊以及大多数电商平台都以固定的展示尺寸展示商品照片。JPEG 是通用接受的格式,能降低商品页面的体重。有几百到上千张商品照片的目录在 JPEG 而不是 PNG 的形式下,可以看到显著的 CDN 带宽节省和更好的 Largest Contentful Paint。
- 照片打印服务。 Walgreens、CVS、Snapfish、Mpix、Costco Photo 以及大多数照片打印自助终端都接受 JPEG;PNG 支持参差不齐,尤其是较小的服务和较旧的自助终端。在上传到打印服务之前转换,可以避免后续出现「打印队列读不出文件」这样的意外。
- 为归档或门户上传准备文档扫描。 保存为单独 PNG 文件的多页扫描可以变成一个体积小得多的 JPEG 文件夹,便于归档或上传到只接受 JPEG 的门户。对边缘锐利的印刷或打字文本扫描,使用更高质量(90-95)以保持边缘清晰;对手写笔记和连续色调照片,80-85 已经足够。
常见陷阱及其含义
- JPEG 输出可能比 PNG 输入更大。 对于摄影类 PNG,JPEG 小 5 到 10 倍。对于标志、插画、截图以及任何具有大面积单色区域或锐利色彩边界的图像,JPEG 常常更大,因为 DCT 在平面区域注入噪声,把锐利边缘量化成可见的光晕,光晕本身还要消耗比特。如果你的 PNG 是图形内容而非摄影内容,请停留在 PNG 或转换到 WebP。
- 透明度被替换,而不是保留。 JPEG 没有 Alpha 通道。透明的 PNG 像素被合成到你所选的背景色之上,然后烘焙进输出像素。一旦 JPEG 写出,Alpha 信息就永久消失,无法恢复。如果你需要保留透明度,请停留在 PNG,转换到 WebP,或使用带 Alpha 的格式如 TIFF 或 AVIF。
- 锐利文字与线条会出现 JPEG 光晕。 JPEG 量化在锐利色彩边界附近产生可见的光晕和块状伪影。对于 UI 截图、设计稿、图示、字体样张以及任何依赖边缘像素级再现的内容,请停留在 PNG。视觉伪影在紧靠锐利彩色形状的平面背景上最为明显。
- 重新编码会累积损失。 每一次经过 JPEG 编码器都会丢失图像数据。一次转换(PNG 到 JPEG)没问题;把 JPEG 反复保存数次后图像会明显劣化,尤其在平面区域和色度边界。请总是从手头最高质量的源 PNG 转换,而不是从昨天导出的 JPEG。
- ICC 色彩配置文件可能被移除。 嵌入的 ICC 色彩配置文件(sRGB、Adobe RGB、ProPhoto)告诉显示器如何解释像素值。基于画布的重新编码可能会丢弃配置文件并把输出标记为 sRGB。对于一般的屏幕使用这看不出来;但对于印刷准备或广色域交付,请使用能显式保留配置文件数据的色彩感知桌面工具。
- 非常大的 PNG 可能让移动浏览器标签崩溃。 把 PNG 解码到 RGBA 像素所需的 RAM 与其尺寸成正比:一张 2400 万像素的 PNG(6000x4000)光是源像素缓冲就要约 96 MB,再加上画布的独立缓冲,再加上编码器的工作空间。浏览器可用 1 到 2 GB RAM 的移动设备,可能在编码完成之前就被操作系统终止标签页。
隐私:图像永远不离开你的设备
每一个基于云的 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,或转换到 WebP(同时支持有损和无损模式,并具备完整 Alpha,文件通常比 PNG 小 25%),或转换到 AVIF 以获得带 Alpha 的最小文件。除 JPEG 之外的任何格式。WebP 路线请使用图像转换器。
- 你的图像是标志、截图或平面插画。 JPEG 处理摄影好、处理图形差。对标志、截图、图示、UI 稿以及任何具有锐利色彩边界或大面积平面的图像,JPEG 输出往往比源 PNG 更大、质量更差。停留在 PNG,并通过图像压缩器进一步收紧 DEFLATE 压缩,或转换为 WebP 无损。
- 对数百个文件做批量自动化。 使用 Node.js 中的 Sharp(基于 libvips 的规范服务端图像库)、命令行的 ImageMagick 或 GraphicsMagick,或 Python 中的 Pillow。CLI 工具能处理数千个文件而不受浏览器内存限制,并可从 CI 任务、部署钩子或 cron 作业中运行。
- 带色彩管理的印刷工作流。 使用 Photoshop 的「导出为」(保留 ICC 配置文件,支持屏幕软打样和 CMYK 输出)、Affinity Photo 或 RawTherapee。基于浏览器 Canvas 的转换可能丢弃嵌入的色彩配置文件,这对屏幕使用没问题,但对印刷准备不适合。
常见问题
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 场景。