如何在 nautilus 上预览 DDS 和 WEBP 图像?

Aqu*_*wer 28 nautilus files previews webp

我有太多图片无法进行视觉搜索,因此我无法单独打开每一张图片。

我必须做什么或安装什么才能在 nautilus 上显示 DDS 图像预览?

如果可能,我也想预览 webp。

Aqu*_*wer 32

/usr/share/thumbnailers使用以下名称和内容创建文件:

数据传输系统

这里:写信给dds.thumbnailer

[Thumbnailer Entry]
Exec=/usr/bin/convert -thumbnail x%s %i png:%o
MimeType=image/x-dds;
Run Code Online (Sandbox Code Playgroud)

网络版

首先安装 webp: sudo apt-get install webp.
基于。写信给 webp.thumbnailer
sudo gedit /usr/share/thumbnailers/webp.thumbnailer

[Thumbnailer Entry]
Exec=/usr/bin/dwebp %i -scale 100 100 -o %o
MimeType=image/x-webp;image/webp;
Run Code Online (Sandbox Code Playgroud)

并在完全退出后重新启动 nautilus nautilus -q

正如@PereJoanMartorell指出的,~/.cache/thumbnails/fail至少必须删除里面的文件。

笔记

这种 webp 方法的问题是所有缩略图都是 100x100 像素。
但是,这个脚本使它正常工作(和可以高度简化的,一看便知下面这里,不依赖于ScriptEchoColor库)。也是基于它改进的,用于动画 webp(看起来很有趣,还没有尝试过,刚学会了 webp 可以动画!)。
观察。:在 18.04 和 20.04 上nemo,它仅适用于,在 nautilus 上无法生成缩略图,但可以可视化。

  • 如果你用 %s 替换 100 你会得到合适的大小。像这样: Exec=/usr/bin/dwebp %i -scale %s %s -o %o (5认同)

Cal*_*Cat 12

在 Nautilus 和 Nemo 上预览WebP图像的相当全面的指南(基于@AquariusPower 建议的答案和脚本):

1.安装webp

sudo apt-get install webp
Run Code Online (Sandbox Code Playgroud)

这个软件包附带的vwebpdwebp它们将被用来转换的WebP图像转换成更小的缩略图PNG工具。

2.检查MimeTypeWebP文件

  • 在文件管理器(Nautilus、Nemo 等)中右键单击 WebP 图像,选择属性
  • Basic选项卡中,导航到Type行并查看右侧括号中的内容。它通常是,image/webp但也可以是image/x-webp, audio/x-riff,或者在我的情况下是application/x-wine-extension-webp(因为我使用带有 Wine 的 Windows 图像查看器来查看 WebP);请记住MimeType,它将在此之后不久使用。

3.创建一个名为webp-thumbnailer-binin的文件/usr/bin

sudo nano /usr/bin/webp-thumbnailer-bin
Run Code Online (Sandbox Code Playgroud)

下面的脚本(基于复制),到文件(使用Ctrl+C复制,Ctrl+ Shift+V粘贴到nano窗口):

#!/bin/bash

strInFile="$1"
nMaxDimension="$2"
strOutFile="$3"

strInfo="`DISPLAY=NONE vwebp -info "$strInFile"`"
strSize="`echo "$strInfo" | grep Canvas | sed -r 's"Canvas: (.*) x (.*)"\1\t\2"'`"

nWidth="`echo "$strSize" | cut -f1`"
nHeight="`echo "$strSize" | cut -f2`"

if((nWidth>nHeight));then
    nNewWidth=$nMaxDimension
    nNewHeight=`bc <<< "scale=10;f=$nHeight*($nNewWidth/$nWidth);scale=0;f/1"`
else
    nNewHeight=$nMaxDimension
    nNewWidth=`bc <<< "scale=10;f=$nWidth*($nNewHeight/$nHeight);scale=0;f/1"`
fi

/usr/bin/dwebp "$strInFile" -scale $nNewWidth $nNewHeight -o "$strOutFile"
Run Code Online (Sandbox Code Playgroud)

Ctrl+ O(字母O不是数字零0)并Enter保存文件,按Ctrl+X退出nano并返回到终端。

此脚本输入一个 WebP 文件,使用 提取其尺寸(宽度和高度)vwebp,并使用这些值作为输入,dwebp将 WebP 文件转换和缩放为具有原始纵横比的较小 PNG 缩略图。

接下来,使文件可执行:

sudo chmod +x /usr/bin/webp-thumbnailer-bin
Run Code Online (Sandbox Code Playgroud)

4.创建一个webp.thumbnailer文件/usr/share/thumbnailers

sudo nano /usr/share/thumbnailers/webp.thumbnailer
Run Code Online (Sandbox Code Playgroud)

下面的内容复制到文件(使用Ctrl+C复制,Ctrl+ Shift+V粘贴到nano窗口):

sudo apt-get install webp
Run Code Online (Sandbox Code Playgroud)
  • 还记得MimeType吗?如果您之前检查的类型不在上面列出的第三行中,请将其添加到行尾。确保以分号 ( ;)结束该行。

  • 此外,您可以256在第二行中更改128为更小的缩略图(尽管256推荐,因为它是 Nautilus 的默认大缩略图尺寸)。

再次,按Ctrl+OEnter保存文件,并Ctrl+X退出nano并返回到终端。

5.(最后)清除缩略图缓存并重新生成缩略图
在终端中发出以下4个命令,Enter在每一行后按:

rm ~/.cache/thumbnails/fail/gnome-thumbnail-factory/*
rm ~/.cache/thumbnails/large/*
rm ~/.cache/thumbnails/normal/*
nautilus -q
Run Code Online (Sandbox Code Playgroud)
  • 如果使用nemo,最后一个命令应该是nemo -q.

  • 您可以通过转到~/.cache/thumbnails并删除其中的所有 3 个文件夹(faillargenormal)来手动删除缓存,而不是使用终端。

  • 最后,重新打开 Nautilus 或 Nemo,现在应该显示所有 WebP 图像。

测试:Ubuntu 14.04、16.04、20.04;Linux Mint Cinnamon 19.3、20.1。

注意:此方法只会为静态WebP 图像生成缩略图。如果您还需要动画WebP 的缩略图,请参阅Aistis 的回答,该回答为脚本添加了一些有趣的更改。

  • 出色的。这对我有用。乌班图20.04.1 (2认同)