放弃在线图像的PNG和JPG格式:使用WebP

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

Opensource.com

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

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

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

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

谷歌报告称,将动态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 规范的参考实现,可从谷歌的 Git 仓库或 tarball 获取。

WebP 格式与全球范围内使用的大多数网络浏览器兼容。在撰写本文时,它与 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

或者,您也可以使用 ImageMagick,它可能在您的发行版的软件仓库中可用。转换的子命令是 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

WebP 在 Wordpress 上

许多网站都是使用 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。

回复 by Gafaba.com

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

我根本不想碰 WebP。我想捕获网页以供在电子阅读器中离线访问。如果网站的目标是阻止这样做,以便它可以向我发送广告垃圾邮件,那么 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.