一个只收 JPEG 的表单、一个不认识 WebP 的软件、一张需要变透明的图片:改图片格式是件再平常不过的事。它同时也是那些“转换工厂”网站最爱的地盘,那种满屏广告和假下载按钮的站点,全都以“请交出您的文件”开场。
这件工具做同样的事,却什么都不收。而且它做了一件别人不做的事:它只把您这台浏览器真正写得出来的格式列给您。这不是客气,这是技术上的必需。画布标准规定,一个写不出所要格式的浏览器可以一声不吭地给出一个 PNG:所以一个不做核实、却把“WebP”摆在清单上的网站,给所有 Safari 访客的其实是一个改了名字的 PNG。
得到的文件是什么类型,会被事后回读并显示出来。如果您的浏览器给的不是您要的那种,您会知道,连文件名也照实写。
怎么用
- 把您的图片拖到拖放区,或者点击选择,或者从剪贴板粘贴。
- 选输出格式。清单里只有您的浏览器此时此地写得出来的东西:所以它在 iPhone 上可能比在电脑上短。
- 点“转换并下载”。得到的文件是什么类型会被回读出来显示给您,文件随即下载。
支持的格式
这六种格式在所有最新的浏览器里都打得开。至于输出,清单要短一些,而且要看浏览器:正因如此它是运行时测出来的,不是事先写死的。兼容性对照表逐个浏览器列出了细节。
JPEG 照片(.jpg、.jpeg)
哪里都打得开、写得出。它不支持透明:把一张透明的图转成 JPEG 就得垫一层底色,工具会在动手之前说明。
PNG 图片(.png)
哪里都打得开、写得出,而且保留透明。它是画布标准里唯一强制要求支持的格式:所以它也是那个万能的退路。
WebP 图片(.webp)
从 Safari 14 起哪里都打得开。至于写出来,Chrome、Edge 和 Firefox 都会;Safari 没有一个版本会,Mac 上不会,iPhone 上也不会。所以输出清单会随浏览器变。
AVIF 图片(.avif)
从 Safari 16.1 起哪里都打得开。但要写出来,我们没有找到任何一个真正提供了这个能力的浏览器,也没有为那条被到处转抄的相反说法找到第一手来源。所以 AVIF 只有在您的浏览器确实做得到时才会出现在输出清单里:这是在您那边量出来的,不是我们在这边假设的。
GIF 图片(.gif)
哪里都打得开,但只能读。会动的 GIF 会被拒绝:画布里只装得下一张静止的图,转换只会留下第一帧。
BMP 图片(.bmp)
哪里都打得开,但只能读。这是一种不压缩的格式,所以特别大:转成 PNG 往往能小到十分之一,而且什么都不损失。
它的限制
每个文件 50 MB
再往上,内存不够的手机会让标签页崩溃,而不是给出结果。这个上限是一句老实话,不是商业上的绳索。
每张图约 1670 万像素
在 iPhone 和 iPad 上,画布的面积很长时间都被限死在 4096 乘 4096 像素,超过就分配失败。工具在分配之前先检查面积,干脆地拒绝。
输出格式取决于您的浏览器
写出一张图片是浏览器的能力,不是网站的能力。Safari 写不出 WebP,而 AVIF 我们没有找到任何真正写得出来的浏览器。与其挂一张好看的清单、背地里给个 PNG,工具宁可量出这台浏览器做得到什么,只显示这些。
会动的图片会被拒绝
画布里只装得下一张静止的图:会动的 GIF、PNG 或 WebP 出来就只剩第一帧了。工具会在文件的字节里认出来并拒绝,而不是一声不吭地给您一个残缺的文件。
iPhone 的 HEIC 照片读不了
只有 Safari 打得开 HEIC;换别的浏览器就得内嵌一个十兆开外的解码器。iPhone 可以把相机设成“兼容性最佳”来拍 JPEG,或者以 JPEG 格式分享照片。
关于这个工具的问题
我的图片会被发到什么地方吗?
不会,而且您不必听我们的。按 F12 打开浏览器的开发者工具,切到“网络”标签页,清空列表,然后把图片放进来。一行都不会冒出来。您也可以把网断掉:工具照常工作。
为什么我的输出清单里没有 WebP?
因为您多半是在 Safari 上,Mac 或者 iPhone。Safari 没有一个版本能从画布里写出 WebP。这不是网站的限制:这是浏览器的限制,而且是在您打开页面的那一刻、在您自己的浏览器上验出来的。换 Chrome、Edge 或者 Firefox,WebP 就在那儿。
你们怎么知道我的浏览器写得出什么?
问它。工具做一张一像素乘一像素的画布,让浏览器按每种格式依次保存一遍。浏览器会回报它写出来的是什么类型:如果它报的不是所要的那种,那这个格式就是不支持。这是一次实测,不是从一张会过时的表格里抄下来的清单。
把一张透明的 PNG 转成 JPEG 会怎么样?
透明的地方会填成白色,因为 JPEG 格式表示不了透明。工具会在您的图片里检测出透明,并在转换之前提醒您,好让您在这一点要紧时改选 PNG 或者 WebP。
转换会把我的图片弄糟吗?
要看转到哪种格式。转成 PNG,不会:PNG 是无损的,每个像素都原样记下来。转成 JPEG、WebP 或 AVIF,会糟一点:它们是有损格式,糟多少由画质那一项决定。不管哪种情况,这都是一次真正的重新编码,绝不是复制:把 JPEG 转成 JPEG 也是重压一遍。
为什么会动的 GIF 你们不收?
因为浏览器的画布里只装得下一张静止的图。转换一个会动的 GIF 只会留下第一帧,您会以为动画转好了,拿到的却是个不动的文件。工具会去文件的字节里看它包含几帧,发现不止一帧就停下。这是拒绝,不是故障。
那我 iPhone 上的 HEIC 格式呢?
读不了,这写在工具的限制里。只有 Safari 打得开 HEIC;换别的浏览器就得内嵌一个十兆开外的解码器,而对一个必须在弱网下也能用的网站来说,我们不接受这一点。在相机设置里,“兼容性最佳”这一项会直接产出 JPEG。