在线图片抛弃 PNG 和 JPG:使用 WebP

开始使用这个开源图像编辑工具,以节省时间和空间。
96 位读者喜欢这篇文章。
Painting art on a computer screen

Opensource.com

WebP 是 Google 在 2010 年开发的一种图像格式,可为网络上的图像提供卓越的无损和有损压缩。 使用 WebP,Web 开发人员可以创建更小、更丰富的图像,从而提高网站速度。 更快的网站加载速度对于用户体验和网站的营销效果至关重要。

为了在所有设备和用户上实现最佳加载,您网站上的图像文件大小不应超过 500 KB。

WebP 无损图像通常比 PNG 小至少 25%。 WebP 有损图像通常比具有同等 SSIM(结构相似性)质量指数的 JPEG 图像小 25-34%。

无损 WebP 也支持透明度。 对于可以接受有损 RGB 压缩的情况,有损 WebP 也支持透明度,通常比 PNG 提供小三倍的文件大小。

Google 报告称,从动画 GIF 转换为有损 WebP 的图像文件大小减少了 64%,转换为无损 WebP 时减少了 19%。

WebP 文件格式基于 RIFF(资源交换文件格式)文档格式。 文件签名是 52 49 46 46 (RIFF),您可以使用 hexdump 查看

$ hexdump --canonical pixel.webp 
00000000  52 49 46 46 26 00 00 00  [...]  |RIFF&...WEBPVP8 |
00000010  1a 00 00 00 30 01 00 9d  [...]  |....0....*......|
00000020  0e 25 a4 00 03 70 00 fe  [...]  |.%...p...`....|
0000002e

独立的 libwebp 库用作 WebP 规范的参考实现,可从 Google 的 Git 仓库 或作为 tarball 获取。

WebP 格式与全球使用的大多数 Web 浏览器兼容。 在撰写本文时,它与 Apple 的 Safari 浏览器不兼容。 解决方法是同时提供 JPG/PNG 和 WebP,并且有一些方法和 Wordpress 插件可以做到这一点。

为什么这很重要?

我的部分工作是设计和维护我们组织的网站。 由于该网站是一种营销工具,并且网站速度是用户体验的关键方面,因此我一直在努力提高速度,而通过将图像转换为 WebP 来减小图像大小是一个不错的解决方案。

为了测试其中一个页面的速度,我使用了 web.dev,它由 Lighthouse 提供支持,该 Lighthouse 在 Apache 2.0 许可下发布,可以在 https://github.com/GoogleChrome/lighthouse 找到。

根据其官方描述,“Lighthouse 是一种开源的自动化工具,用于提高网页的质量。 您可以针对任何网页(公共或需要身份验证)运行它。 它具有针对性能、可访问性、渐进式 Web 应用程序、SEO 等的审核。 您可以在 Chrome DevTools 中、从命令行或作为 Node 模块运行 Lighthouse。 您向 Lighthouse 提供要审核的 URL,它会对页面运行一系列审核,然后生成一份关于页面性能的报告。 从那里,使用失败的审核作为改进页面的指标。 每个审核都有一个参考文档,解释了为什么该审核很重要,以及如何修复它。”

创建一个更小的 WebP 图像

在我测试的一个图形上,原始 Web 版本的大小为 650 KB。 通过将其转换为 WebP,我将文件大小减少到 45 KB,并且质量没有明显的损失。

开源图像编辑器 GIMP 支持 WebP 作为导出格式。 它为质量和压缩配置文件提供了多个选项

GIMP dialog for exporting webp, as a webp

另一张图像的放大图

WebP vs PNG comparison

PNG(左)和 WebP(右)都从 JPG 转换而来,显示 WebP 虽然尺寸较小,但在视觉质量上更胜一筹。

将图像转换为 WebP

要在 Linux 上将图像从 JPG/PNG 转换为 WebP,您还可以使用命令行

使用命令行上的 cwebp 将 PNG 或 JPG 图像文件转换为 WebP 格式。 您可以使用以下命令将质量范围为 80 的 PNG 图像文件转换为 WebP 图像

$ cwebp -q 80 image.png -o image.webp

或者,您也可以使用 Image Magick,它可能在您的发行版的软件存储库中可用。 转换的子命令是 convert,所需要的只是输入和输出文件

$ convert pixel.png pixel.webp

使用编辑器将图像转换为 WebP

要使用照片编辑器将图像转换为 WebP,请使用 GIMP。 从 2.10 版本开始,它原生支持 WebP。

如果您是 Photoshop 用户,则需要一个插件来转换文件,因为 Photoshop 本身不包含它。 WebPShop 0.2.1 在 Apache License 2.0 许可下发布,是一个用于打开和保存 WebP 图像(包括动画)的 Photoshop 模块,可以在以下网址找到:https://github.com/webmproject/WebPShop

要使用该插件,请将 bin 文件夹中的文件放入您的 Photoshop 插件目录中

Windows x64—C:\Program Files\Adobe\Adobe Photoshop\Plug-ins\WebPShop.8bi

Mac—Applications/Adobe Photoshop/Plug-ins/WebPShop.plugin

Wordpress 上的 WebP

许多网站都是使用 Wordpress 构建的(这也是我使用的)。 那么,Wordpress 如何处理上传 WebP 图像? 在撰写本文时,它没有。 但是,当然有一些插件可以启用它,因此您可以同时提供 WebP 和 PNG/JPG 图像(适用于 Apple 用户)。

或者,您可以参考来自 Marius Hosting 的这些 说明

“如何直接将 WebP 图像上传到 Wordpress? 这很简单。 只需在您的主题 functions.php 文件中添加一些文本行。 Wordpress 本身不支持查看和上传 WebP 文件,但我将向您解释如何在几个简单的步骤中使其工作。 登录到您的 Wordpress 管理区域,然后转到外观/主题编辑器并找到 functions.php。 将下面的代码复制并粘贴到文件的末尾并保存它。 "

//** *Enable upload for webp image files.*/
function webp_upload_mimes($existing_mimes) {
    $existing_mimes['webp'] = 'image/webp';
    return $existing_mimes;
}
add_filter('mime_types', 'webp_upload_mimes');

如果您希望在转到媒体/库时看到缩略图预览,则必须在相同的 functions.php 文件中添加以下代码。 要找到 functions.php 文件,请转到外观/主题编辑器并找到 functions.php,然后将下面的代码复制并粘贴到文件的末尾并保存它。”

//** * Enable preview / thumbnail for webp image files.*/
function webp_is_displayable($result, $path) {
    if ($result === false) {
        $displayable_image_types = array( IMAGETYPE_WEBP );
        $info = @getimagesize( $path );

        if (empty($info)) {
            $result = false;
        } elseif (!in_array($info[2], $displayable_image_types)) {
            $result = false;
        } else {
            $result = true;
        }
    }

    return $result;
}
add_filter('file_is_displayable_image', 'webp_is_displayable', 10, 2);

WebP 与未来

WebP 是一种强大且优化的格式。 它看起来更好,具有更好的压缩比,并且具有大多数其他常见图像格式的所有功能。 无需等待,立即开始使用它。

接下来阅读什么
User profile image.
Jeff Macharyas 是纽约州康宁社区学院的营销总监。 他是一位作家、平面设计师和传播总监,多年来一直在出版、高等教育和项目管理领域工作。

贡献者

7 条评论

Webp 图像在边缘上更模糊,清晰度更低。 新的图像格式看起来很有趣,但它不如以前好,即使在我的显示器上我也能看到图像质量下降。雕像图像的颜色甚至看起来都褪色了。

谢谢,但 Webp 在 Safari 浏览器中不起作用,如何修复它?

Safari 目前不支持 webP 图像文件。 本文中已经说明了这一点。 不幸的是,您必须等待 Apple 加入这种图像格式才能在 Safari 中查看它。 在此之前,您可以在所有支持 webP 的浏览器中提供 webP,在像 Safari 这样不支持 webP 的浏览器中提供 jpg 或 png。

回复 作者 Gafaba.com

是的,这仍然是一个问题。 您的网站还需要提供 jpg 或 png,因为 safari 目前不支持 webp。

回复 作者 Gafaba.com

作为一名设计师,我需要下载大量素材,这些 webp 给我的工作流程带来了很大的麻烦,并非所有程序或应用程序都支持 webp,我需要找到将其转换回普通格式的方法,我不认为我是唯一一个讨厌 webp 的人,很多人都这么说

我不会用 10 英尺的杆子去碰 WepP。 我想在电子阅读器中捕获网页以进行离线访问。 如果一个网站的目标是阻止它,以便可以用广告向我发送垃圾邮件,那么 WebP 图像是实现此目的的好方法。 提取图像只是又一步。

具有讽刺意味的是,在这篇题为“在线图片抛弃 PNG 和 JPG:使用 WebP”的文章中,除了一个图像之外,所有图像都是 PNG 格式。 只有 GIMP 对话框图像是实际的 WebP 文件。

并且由于页面的设置方式,即使是那个 WebP 图像,Firefox (macOS) 也仅显示在网页中,但如果您右键单击并选择“查看图像”(就像您可以对 PNG 和 JPEG 执行的操作一样),您无法查看,而是只提供打开另一个程序或简单地下载文件。 (我说这些是因为我发现其他带有 WebP 图像的网页可以让我很好地做到这一点。)

此外,据我回忆,虽然作者谈到了与其他格式相比的压缩百分比,但没有提到的是,例如,与动画 GIF 相比,动画 WebP 文件在播放期间需要更多的处理能力。 因此,在下载时间与加载时间/CPU/功耗之间存在权衡,这会影响那些使用较旧/较慢系统的人。

请注意,我认为提供这种格式的意图是好的。 但现实情况是,除了图像的质量(如上所述)以及在本篇 opensource.com 的在线文章中展示的那样,它根本没有被采用到接近所需水平的程度。 如果他们希望提出正确的论据,就必须吃自己的狗粮。 但显然这样做意味着接触到的人会更少。 因此,我们陷入了两难境地。

[需要说明的是,我并不是在指责 WebP。这有点像“先有鸡还是先有蛋”的问题。也就是说,它在软件方面类似于我们在硬件方面仍然困在 QWERTY 键盘上的原因(对于我们这些在美国的人来说),这种键盘布局/设计旨在减慢打字机时代的速度。尽管我们已经有几十年的时间过渡到更高效的 Dvorak 键盘,后者在大多数情况下可以让我们将打字速度提高一倍,但我们没有这样做。更换自己的键盘是一回事,但当出售的每台笔记本电脑等仍然配备 QWERTY 键盘时,你需要完成工作并能够从一台电脑移动到另一台电脑……无论如何,由于 WebP 更偏向软件,希望它不会花费那么长时间。但即使是这样的事情也需要时间。]

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.