Logo转成给客户's site 运过一次回来就是以前透明背景的黑色长方形,我没想就把PNG转成JPEG,奇怪的是我 预期 白色 - 我读过的每一篇文章都说透明度 "变成白色。 "它变成了黑色,我花了二十分钟假设我的代码被破坏,然后我读了 HTML 规范,发现浏览器正在完全按照它被告知的方式进行。
这是本指南的诚实主题。 图像格式转换器 on toolz。dev 是浏览器上的一个薄包装纸's 自己的画布编码器。那给了它真正的优势- 没有上传,它's 即时,一旦加载它就离线工作- 以及大多数"将任何图像转换为任何格式"页不会承认的真正限制。我构建了这个,所以I'll告诉你两半。
TL;博士: 的 图像格式转换器 拍摄浏览器可以打开的任何图像并将其重新编码为 PNG、JPEG 或 网络P-那三个, 而且只有那三个。没有AVIF, GIF, SVG输出, 因为工具使用浏览器's画布编码器, 那就是画布所支持的。选取一个目标, 拖动质量滑块(仅限JPEG和WebP - PNG忽略它),下载。转换前要知道的两件事: 当您瞄准 JPEG 时,透明复合材料会变成黑色每个规格,以及 EXIF 元数据被剥离 on every conversion,因为画布重新编码只携带像素。要缩小文件,请将其与。 图像压缩器 和 图像调整大小 工具。
该转换器实际上支持什么?
Let's先把范围对,因为这是大多数格式引导超卖的地方。
输入: 文件选择器接受 image/*并且文件被加载到普通文件中 <img> element。so如果你的浏览器可以显示它,工具可以读取它 - PNG,JPEG,WebP,GIF,BMP,AVIF,在大多数现代浏览器中,SVG。
输出: PNG,JPEG,WebP。三个按钮。那个's列表。
原因不是懒惰,it's平台。工具将你的形象画到一个 <canvas> 和电话 canvas.toBlob(callback, type, quality)。HTML生活标准要求每个浏览器都支持 image/png 对于该调用,其他格式可选;在实践中, image/jpeg 並 image/webp 到处都得到支持 image/avif encoding 不是。没有浏览器 API 可以从画布上编写 AVIF 或 GIF。为您提供 AVIF 输出的网站要么是发送 WebAssembly 编码器(数百千字节下载),要么 - 更常见的是 - 将图像上传到服务器。该工具也不是这样做的。
这是诚实的比较表,工具优先:
| 你想要 | 这个工具 | 为什么 |
|---|---|---|
| PNG → JPEG | 是的 | 画布编码 image/jpeg |
| PNG → WebP | 是的 | 画布编码 image/webp |
| JPEG → WebP | 是的 | 这里最有用的转换 |
| WebP → PNG/JPEG | 是的 | 对于仍然可以't 读取 WebP 的工具 |
| AVIF → 网络 | 是(AVIF X),在2019年1月1日,在2019年1月1日,在2019年1月1日,在2019年1月1日,在2019年1月1日,在2019年1月1日,在2019年1月1日 在 仅(仅限) | 浏览器对 AVIF 进行解码;可以't对其进行编码 |
| 任何东西→ AVIF | 否 | 不存在帆布 AVIF 编码器 |
| 动画 GIF → 动画 WebP | 否 | 安静 <img> 给画布一帧 |
| 任何东西→SVG | 否 | SVG是向量;这是一个栅格管道 |
| 200个文件的批次 | 否 | 一次一个文件 |
如果您需要 AVIF 或动画 WebP,请使用 squoosh 本地, cwebp/avifenc from命令行,或者你的构建管道's图像步骤,我宁愿把你送到有用的地方,也不愿假装。
JPEG为什么会把我的透明背景变成黑色?
因为规格是这么说的,我是在客户电子邮件之后才知道的。
JPEG没有alpha通道,当你要求画布序列化为不't支持alpha的格式时,HTML生活标准是显式的:位图必须合成到a上 纯黑色背景 编码前。不是白色的。黑色的。chrome、firefox 和 Safari 都遵循这一点,这就是为什么行为是一致的,也是为什么它会让每个人都感到惊讶一次。
所以: 将透明的 PNG 徽标转换为 JPEG 将在它后面为您提供一个黑匣子。 Every time。that's不是工具中的一个错误,它's平台一致,并且没有拖动质量滑块的数量修复它。
相反,该怎么办:
- 保持透明度? 目标 巴布亚新几内亚 或 网络P.两者都带有alpha。WebP通常会是两者中较小的一个。
- 特别需要 JPEG? 首先将图像压平到编辑器中您实际想要的背景颜色上 然后 转换。
- 只转换照片? 照片没有透明度,所以这永远不会出现。转换离开。
这是人们用转换器损坏图像的最常见方式,它'值得内化: alpha 是格式的属性,而不是文件的属性。 选择 JPEG 是选择扔掉 alpha 通道。
还有什么会丢失在画布重新编码中?
A canvas 保存像素。只是像素。当浏览器重新编码时, 原始文件中的其他所有内容都会被丢弃, 这会把人赶出去:
EXIF 消失了。 相机品牌和型号、镜头、曝光、拍摄日期、版权字段等 GPS 坐标 all vanish。这是偶然的隐私胜利- 在你发布手机照片之前转换它会剥离它拍摄的位置- 但如果你're 档案管理员或者你需要版权领域才能生存,请不要通过任何基于画布的转换器来转换副本。
颜色配置文件变平。 Display P3 或 Adobe RGB 这样标有广域网配置文件的图像被画到画布上,实际上,它将其视为 sRGB。对于网络图像,无论如何,这就是您想要的。对于打印工作,它是't。
动画崩溃到一帧。 安静 <img> element手画布无论什么框架显示。在十二秒动画gif中掉落,你'将获得一个单静态。该工具不会警告你这一点,我认为这是一个真正的粗糙边缘而不是一个功能。
其他所有内容都从解码像素重新编码。 这给我们带来了一条最重要的规则。
什么是世代损失,以及如何避免它?
每次保存有损格式时,编码器都会丢弃数据。丢弃数据,解码,丢弃更多,并且损坏化合物。这就是生成损失,它's 你的模因模板看起来像是被传真的原因。
规则很短: 始终从您拥有的最佳原件转换,而不是从转换后的副本转换。
具体来说,JPEG → WebP → JPEG 比原始 JPEG 差,是原来的两倍。第一个编码's 工件被第二个编码视为真实的图像细节,第二个编码忠实地花费了一些位来保存它们。如果您有 RAW 文件或 PNG 导出,请从那里开始。
There's 一个会绊倒人的推论: 将 JPEG 转换为 PNG 不会恢复质量。 PNG是无损的,所以它会完美地保存你的图像- 包括每一个已经烤入像素的压缩神器。你在一个三四倍大的文件中得到相同的损坏图像。PNG-from-JPEG只值得当作中间步骤当你're即将进行多轮编辑,并希望避免每次保存时重新压缩。
我实际上应该选择哪种格式?
跳过格式分类法;这里's 按照我实际做出的顺序做出决定。
是照片吗? 80 85处的WebP。如果你的管道中的东西可以't读取80 85处的WebP,JPEG。
它有透明度吗? WebP。PNG,如果您需要最大程度的兼容性。
它是屏幕截图、UI 模拟、图表还是任何带有文本和平坦颜色的内容? PNG,或WebP。JPEG's离散余弦变换涂片尖锐的边缘,成为字母周围可见的蚊子噪音 - 它是在20世纪80年代末为连续色调照片设计的(格式标准化为ITU-T T。81/ISO/IEC 10918-1),文本正是它处理最差的内容。
它是您控制的徽标还是图标? Neither - 使用SVG,并且don't完全通过光栅转换器。
对于这些背后的规格:PNG 是 ISO/IEC 15948,WebP 最终发布为 RFC 9649 2024年,谷歌出货十四年后。在尺寸上,谷歌'自己的比较研究表明,webp有损在同等ssim下比jpeg小约25.34%,webp无损在比png小约26%。那些是供应商's上的数字's语料库- 把它们当作强烈的暗示,而不是对你特定图像的承诺。I'm舒适地引用它们的原因是,它们'多年来在真实的屏幕截图和照片上与我的结果足够接近。你的可能有所不同,这就是为什么该工具在你转换之前向你显示源大小。
如何在 Toolz。dev 上转换图像?
1步:打开转换器
去 图像格式转换器。无可安装,无帐户。
2步:上传您的图像
击上传区域,挑选一个文件,它通过对象URL加载到你的浏览器中- 文件永远不会发送到任何地方,你'll看到文件名及其大小。
3步:检查格式读出
该工具显示 当前 → 目标。"当前"是从文件's MIME类型中读取的,所以a .jpg 文件报告为 JPEG。当有人重新命名一个文件时,有用的理智检查's扩展名,而没有实际转换它,这比你'd认为的发生更多。
4步:挑选目标
PNG、JPEG 或 WebP。
第 5 步:设置质量 - 如果适用
质量滑块(1 英寸 100,默认为 90) 仅出现在 JPEG 和 WebP 中。那's刻意的:PNG是无损的和 canvas.toBlob 完全忽略质量论点 image/png的,所以显示一个什么都不做的滑块将是一个谎言。
For 设置在哪里:90是默认的,对于大多数内容来说几乎与原始内容无法区分 80 85是我实际工作的地方 - 意义上更小,仍然干净 60以下的你'll在照片上看到它,在任何带有文字的东西上看到你'll看到它早得多。
6步:转换和下载
击 转换&下载。编码发生在您的机器上,文件保存为 converted_<original-name>.<ext>。尺寸被精确地保留 - 转换器将您的图像's自己的宽度和高度通过,因此此步骤更改编码,而没有其他任何内容。
转换或压缩 - 我需要哪一个?
人们在想要更小的文件时会伸手去找转换器,而且经常会发现's错误的工具。三个不同的作业,三个不同的工具:
| 目标 | 工具 | 么改变 |
|---|---|---|
| 更改编码 | 格式转换器 | 格式、质量 |
| 格式相同,文件较小 | 图像压缩器 | 仅限质量 |
| 像素减少 | 图像调整大小 | 尺寸 |
And最大的胜利几乎都是人们跳过的一场, 如果你're将一张4000×3000的照片服务成1200px宽的布局, 调整大小是每种格式选择的组合- you're扔掉了浏览器要缩小和丢弃的90%的像素反正先调整大小,然后转换,按这个顺序做通常需要4 MB PNG在200 KB以下,并且没有在全尺寸原版上进行巧妙的格式选择接近。
多一个值得建构的习惯:保留原件 存档无损大师,生成有损衍生品进行分发 当AVIF-everywhere终于到来,或者之后的下一个格式,你'll从干净的来源重新导出,而不是升级后悔。
常见问题
哪种图像格式最适合网站?
WebP,对于大多数内容。It's小于JPEG的照片和小于PNG的图形,它支持透明度,并且当前每个浏览器都读取它 - Safari是最后的坚持,并在版本14中添加了支持。AVIF压缩得更好,但你可以't在浏览器画布中生产它;你需要一个构建步骤或桌面编码器。
这个工具可以将我的图像转换为 AVIF 吗?
No。转换器只输出PNG,JPEG,WebP,因为它使用浏览器's画布编码器,没有浏览器可以从画布上编码AVIF,你的浏览器可以 解码 AVIF,因此您可以转换 AVIF 文件 到 WebP或PNG这里-只是不是另一个方向,对于AVIF输出,使用命令行编码器像 avifenc or你的框架's的图像管道。
为什么我的透明 PNG 转换为 JPEG 后会出现黑色背景?
JPEG因为没有alpha通道,而HTML规范说一个序列化为没有alpha支持的格式的画布必须将图像合成到纯黑色背景上,它's规范强制行为,而不是错误,它's在每个浏览器中都相同,如果需要保留透明度,则转换为PNG或WebP。
转换图像是否会删除其 EXIF 数据?
是的 - 所有这些,包括 GPS 坐标、相机设置和捕获日期。该工具将您的图像绘制到画布上并对像素重新编码,并且画布不携带元数据。如果您'在发布照片之前重新剥离位置数据,那么这很有用;如果您需要元数据,则会出现问题,因此无论哪种方式都保留未转换的原始数据。
我可以将动画 GIF 转换为动画 WebP 吗?
不使用这个工具。它将您的图像加载到一个 <img> element 并捕获单帧到画布上,因此动画 GIF 作为一张静态图像出来,动画 WebP 需要一个真正的多帧编码器 - 使用 gif2webp google's WebP工具中,或者将动画转换为MP4,这将比任一工具都要小得多。
JPEG转换为PNG会提高质量吗?
No。PNG是无损的,所以它完全保留了给定的's - 包括已经烘烤到JPEG's像素中的压缩伪影,你最终在一个大得多的文件中得到一个看起来相同的丢失数据丢失;没有格式更改将其带回。
有文件大小限制吗?
无硬限制强制执行实用天花板是您的设备's内存,因为整个图像被解码为大致宽×高×4字节的画布位图- 一张8000×6000的照片在编码之前需要大约192 MB的RAM作为原始像素甚至开始桌面浏览器处理典型的相机输出而不会抱怨;旧手机可能会与非常大的文件作斗争。
PNG 和 JPEG 有什么区别?
JPEG是有损的,为照片而构建:它丢弃精细的细节,以达到小文件,并且没有透明度。PNG是无损的,为图形,屏幕截图和徽标而构建:它准确地保持每个像素并支持透明背景,代价是照片更大的文件可以在这里转换它们之间,但请记住一个透明的PNG保存为JPEG获得坚实的背景,因为JPEG没有alpha通道。
如何将图像免费转换为 WebP?
PNG或JPEG加载,选择WebP作为输出格式,如果您想要更小的文件,设置质量,然后下载 - 它是免费的,完全在浏览器中运行WebP通常是值得为Web进行的转换,因为它比JPEG和PNG都小,同时仍然支持透明度,并且被当前每个浏览器读取。
我的图像是否上传到服务器?
No。文件用对象URL在本地读取,由浏览器解码,由浏览器重新编码's画布,由浏览器保存,您可以自己验证:打开DevTools,转到网络选项卡,转换图像- you'll看不到上传。一旦页面加载,转换工作与您的Wi-Fi关闭。
简短版本
浏览器画布是一个好的、诚实的图像转换器,适用于三种格式,而是一个坏的图像转换器,适用于其他所有格式。在 PNG、JPEG 和 WebP 之内,它's 即时、私密和免费,它涵盖了对 Web 真正重要的转换:将您的照片带到 WebP。在这三种格式之外,它可以't 帮助,而 I'宁愿这么说,也不愿让您在客户端上用黑色矩形找出答案's 主页。
在转换任何内容之前,请询问您是否需要透明度(然后不需要 JPEG)、是否需要元数据(然后保留原始数据)以及图像是否只是像素过多(然后) 调整大小 先()。把那三個做好,格式選擇是容易的部分。
的 图像格式转换器 is here。的图像工作流程的其余部分,那里's the 图像压缩器的,该 图像调整大小 工具,以及 - 对于平背景切口 - 后台卸妆师.图幅较广的是在 图像工具指南 和 图像压缩指南。



