如何为 Eye of GNOME 添加 WebP 支持?

如何为 Eye of GNOME 添加 WebP 支持?

WebP图像文件在网络上变得越来越普遍. 侏儒之眼(eog不支持开箱即用有些浏览器会, 和图像魔术师以及仅仅安装webp软件包magick/ convert -list format)。

A简单搜索导致webp-pixbuf-加载器,但对于初学者来说可能不太容易找到并遵循该说明。

如何为 Eye of GNOME 添加 WebP 支持?

参考

答案1

2023-12-01 更新为 GNOME 平台/SDK 添加了内置 WebP 支持

2023-10-11 更新:libwebp 存在一个巨大的漏洞,CVE-2023-4863:


对于 Ubuntu 22.04

sudo apt install webp-pixbuf-loader

对于 Ubuntu 20.04

按照以下步骤为 Eye of GNOME 添加对 WebP 的支持:

  1. 预构建

    sudo apt install git meson ninja-build
    cd /tmp/
    git clone https://github.com/aruiz/webp-pixbuf-loader
    cd webp-pixbuf-loader/
    sudo ln -s /usr/lib/*/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders /usr/bin/gdk-pixbuf-query-loaders  # https://github.com/aruiz/webp-pixbuf-loader/issues/9#issuecomment-537437407
    
  2. 在 Debian/Ubuntu 上构建

    meson builddir -Dgdk_pixbuf_query_loaders_path=/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders
    ninja -C builddir
    
  3. 安装

    sudo ninja -C builddir install
    

测试

wget -O /tmp/samplefile.webp "https://www.gstatic.com/webp/gallery/1.sm.webp"
eog /tmp/samplefile.webp

.webp 扩展名的默认应用程序(图片/webp網絡媒體類型

来自 EOG 问题eog.desktop 不包含 webp mimetype

安装后https://github.com/aruiz/webp-pixbuf-loadereog 可以正确加载 webp 图像...但它仍未作为受支持的 mime 类型添加到 .desktop 文件中,因此默认情况下不提供打开这些图像的功能

修复这个问题:

# Get info                                        
#   If you didn't go through above steps:
wget -O /tmp/samplefile.webp "https://www.gstatic.com/webp/gallery/1.sm.webp"
xdg-mime query filetype /tmp/samplefile.webp      # MIME type of the file: image/webp
xdg-mime query default image/webp                 # .desktop filename of the application which is registered

# Set open .webp with eog
xdg-mime default org.gnome.eog.desktop image/webp # Ask the desktop environment to make application the default
                                                  # application for opening files of type mimetype: Search on
                                                  # ~/.local/share/applications/ (user-wide) or /usr/share/applications/ (system-wide).
sudo update-mime-database /usr/share/mime         # Apply system-wide

# Test
xdg-open /tmp/samplefile.webp

当然,org.gnome.eog.desktop你想改成什么就改成什么。

bash 完成

要为 .webp 启用 bash-completion 支持,我们应该 /usr/share/bash-completion/completions/eog手动()编辑(在 22.04 和 24.04 上测试)_filedir '@(webp|ani|?或者只是:

sudo sed -i 's/_filedir '\''@(/_filedir '\''@(webp|/' /usr/share/bash-completion/completions/eog && . /usr/share/bash-completion/completions/eog; grep webp /usr/share/bash-completion/completions/eog

Ubuntu 22.10 提供开箱即用的 WebP 支持[1] . 针对 22.04你可以使用 PPA(如果您信任开发人员)。

也可以看看

答案2

Ubuntu 22.04

您只需安装webp-pixbuf-loaderEOG 并将其设为扩展的默认程序webp
sudo apt install webp-pixbuf-loader

Ubuntu 20.04

对于以前版本的 Ubuntu,您可以添加ppa:helkaluin/webp-pixbuf-loaderPPA 并按照类似的方式进行操作。

sudo add-apt-repository ppa:helkaluin/webp-pixbuf-loader
sudo apt update
sudo apt install webp-pixbuf-loader

答案3

我找到了这篇 OMG! Ubuntu! 文章:如何为 Ubuntu 22.04 LTS 添加 WebP 支持

只需添加ppa:helkaluin/webp-pixbuf-loaderPPA:

sudo add-apt-repository ppa:helkaluin/webp-pixbuf-loader

然后安装webp-pixbuf-loader

sudo apt install webp-pixbuf-loader

大功告成。我在 Ubuntu 20.04 上可以使用。

答案4

应该安装这些依赖包。

sudo apt install libwebp-dev libgdk-pixbuf2.0-dev libgtk-3-dev meson build-essential

然后,像这样构建并安装。

git clone https://github.com/aruiz/webp-pixbuf-loader
cd webp-pixbuf-loader/
meson builddir -Dgdk_pixbuf_query_loaders_path=/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders
ninja -C builddir
sudo ninja -C builddir install

相关内容