I have too many images to search at visually, so I cannot open each one of them individually.
What I have to do or install to шоу DDS images previews on nautilus?
I would like to preview webp too if possible.
создайте файлы в /usr/share/thumbnailers
с этими именами и содержанием:
DDS
от здесь :
dds.thumbnailer
[Thumbnailer Entry]
Exec=/usr/bin/convert -thumbnail x%s %i png:%o
MimeType=image/x-dds;
WEBP
на основе это :
webp.thumbnailer
[Thumbnailer Entry]
Exec=/usr/bin/dwebp %i -scale 100 100 -o %o
MimeType=image/x-webp;image/webp;
и наутилус перезапуска после полностью выхода из него с nautilus -q
Obs.: проблема с этим подходом webp состоит в том, что все миниатюры будут 100x100. Но этот сценарий заставляет его работать правильно.
Достаточно подробное руководство по предварительному просмотру изображений WebP в Nautilus (файлы GNOME) и файловых менеджерах на основе Nautilus (Nemo, Caja).
Первоначально в этом ответе описывалось только использование dwebp
для создания эскизов для изображений WebP на основе ответа и сценария, предложенного Aquarius Power . После некоторого исследования я нашел больше методов для предварительного просмотра WebP, а также различные подробности о процессе создания эскизов , которые могут заставить методы других пользователей работать не только в Nautilus, но также в Nemo и Caja. Затем этот ответ обновляется, чтобы подробно обсудить все эти методы.
dwebp
и webpmux
Установите webp
sudo apt install webp
Этот пакет предоставляет инструменты dwebp
и webpmux
, которые будут использоваться для преобразования изображений WebP в уменьшенные эскизы PNG.
Получите mime-тип изображений WebP
image / webp
или image / x-webp
, но это также может быть audio / x-riff
(в более старых версиях, таких как Ubuntu 14.04) или даже application / x-wine-extension-webp
(если вы используете приложение Wine для открытия изображений WebP в более старых версиях). В качестве альтернативы можно использовать xdg-mime
. Например, чтобы получить mime-тип example.webp
в ~ / Pictures
, введите следующую команду:
xdg-mime query filetype ~ / Pictures / example.webp
Создайте сценарий эскиза для изображений WebP
webp-thumbnailer-bin
в / usr / local / bin
:
sudo nano / usr / local / bin / webp-thumbnailer-bin
nano
):
#! / Bin / bash
sInFile = "$ 1"
nSize = "2 доллара"
sOutFile = "$ 3"
# Проверяем, является ли входное изображение анимированным WebP
sInfo = "$ (webpmux -info" $ sInFile ")"
nAnimation = "$ (echo" $ sInfo "| grep --count animation)"
# Получить размеры входного изображения;
# Для неподвижного изображения это ширина и высота
# холста;
# Для анимированного изображения это ширина и высота
# первого кадра изображения, который может быть
# отличается от таковых на холсте.если [[$ nAnimation -eq 0]]; тогда
sSize = "$ (echo" $ sInfo "| grep Canvas | cut --delimiter = '' --output-delimiter = $ '\ t' --fields = 3,5)"
еще
sSize = "$ (echo" $ sInfo "| grep '^ * 1:' | sed -r 's | ^ * 1: + ([0-9] +) + ([0-9] +). * | \ 1 \ t \ 2 | ') "
фи
nWidth = "$ (echo" $ sSize "| cut --fields = 1)"
nHeight = "$ (echo" $ sSize "| cut --fields = 2)"
# Получить номер версии `dwebp`
sVersion = "$ (dwebp -version)"
# Рассчитать новые размеры выходного эскиза;
# `dwebp` 0.5.0 и более поздние версии поддерживают использование 0 в качестве масштабирования
# измерение;
# В более старых версиях меньший размер должен быть
# рассчитывается вручную (с использованием `bc`).
если [[$ sVersion <0.5.0]]; тогда
если ((nWidth> nHeight)); тогда
nNewWidth = "$ nSize"
nNewHeight = "$ (echo" scale = 10; f = $ nHeight * ($ nNewWidth / $ nWidth); scale = 0; f / 1 "| bc)"
еще
nNewHeight = "$ nSize"
nNewWidth = "$ (echo" scale = 10; f = $ nWidth * ($ nNewHeight / $ nHeight); scale = 0; f / 1 "| bc)"
фи
еще
если ((nWidth> nHeight)); тогда
nNewWidth = "$ nSize"
nNewHeight = 0
еще
nNewHeight = "$ nSize"
nNewWidth = 0
фи
фи
# Создать миниатюру вывода;
# Если входное изображение - анимированный WebP, первое
# кадр извлекается с помощью `webpmux` и используется как ввод
# для `dwebp`.
# Версии `dwebp` старше 0.4.1 не поддерживают
# чтение данных WebP из стандартного ввода, поэтому фрейм
# сначала нужно записать на диск.
если [[$ nAnimation -eq 0]]; тогда
/ usr / bin / dwebp "$ sInFile" -scale "$ nNewWidth" "$ nNewHeight" -o "$ sOutFile"
еще
если [[$ sVersion <0.4.1]]; тогда
/ usr / bin / webpmux -get frame 1 «$ sInFile» -o «$ sOutFile» .webp
/ usr / bin / dwebp "$ sOutFile" .webp -scale "$ nNewWidth" "$ nNewHeight" -o "$ sOutFile"
rm "$ sOutFile" .webp
еще
/ usr / bin / webpmux -get frame 1 "$ sInFile" -o - | / usr / bin / dwebp -scale "$ nNewWidth" "$ nNewHeight" -o "$ sOutFile" - -
фи
фи
nano
и вернитесь к терминалу. sudo chmod + x / usr / local / bin / webp-thumbnailer-bin
Примечания:
/ usr / bin
, но, как подсказывает этот ответ , безопаснее разместить его в / usr / local / bin
]. ~ / .local / bin
) и запускать команды, подобные приведенным выше, без sudo
. Однако, если вы используете Nautilus, вы можете сделать это только с помощью Nautilus, используя libgnome-desktop
старше 3.28.2 . Это связано с тем, что libgnome-desktop
3.28.2 и более поздние версии реализуют изолированную программную среду для эскизов и по умолчанию не допускают выполнение каких-либо программ или сценариев для эскизов в домашнем каталоге. Чтобы получить номер версии используемой libgnome-desktop
, выполните следующую команду:
список подходящих - установлено | grep libgnome-desktop | вырезать -d '' -f 2 | вырезать -d '-' -f 1
Создайте запись в миниатюре для изображений WebP
миниатюры
в ~ / .local / share
.
mkdir -p ~ / .local / share / thumbnailers
webp.thumbnailer
.
нано ~ / .local / share / thumbnailers / webp.чертёжник
нано
):
[Запись в эскизе]
Exec = / usr / local / bin / webp-thumbnailer-bin% i% s% o
MimeType = изображение / webp;
нано
. Примечания:
MimeType
), добавьте его в конец строки и, при необходимости, завершите строка с точкой с запятой (;
). / usr / share / thumbnailers
вместо ~ / .local / share / thumbnailers
:
sudo nano /usr/share/thumbnailers/webp.thumbnailer
gedit
, также можно использовать для создания и редактирования записи в виде эскиза, но если вы планируете разместить запись в / usr / share / thumbnailers
, используя nano
настоятельно рекомендуется . Очистите старые кешированные эскизы и перезапустите файловый менеджер.
наутилус -q
nemo -q
caja -q
rm -r ~ /.кеш / миниатюры / сбой
rm -r ~ / .cache / эскизы / *
dwebp
Установите webp
(который предоставляет dwebp
)
sudo apt install webp
Получите mime-type изображений WebP (см. Используйте dwebp & webpmux , шаг 2).
Создайте запись в миниатюре для изображений WebP ( см. Используйте dwebp & webpmux , шаг 4 для получения подробной информации)
Содержимое ~ / .local / share / thumbnailers / webp.thumbnailer
с dwebp
как программа эскиза:
dwebp
0.5.0 и новее):
[Запись в эскизе]
Exec = / usr / bin / dwebp% i -размер% s 0 -o% o
MimeType = изображение / webp;
dwebp
):
[Запись в эскизе]
Exec = / usr / bin / dwebp% i -o% o
MimeType = изображение / webp; аудио / x-рифф;
Примечания:
dwebp
не поддерживает декодирование анимированного WebP, поэтому эти записи в миниатюре будут создавать только эскизы для неподвижных изображений WebP. Очистите старые кэшированные эскизы и перезапустите файловый менеджер (см. Используйте dwebp & webpmux , шаг 5)
convert
convert
инструмент (из imagemagick
) можно использовать для создания эскизов изображений WebP в Ubuntu 16.04 и новее.Идея использования convert
в качестве миниатюрной программы для WebP пришла из ответов Тианы и Устмаэстро .
Установите imagemagick
, который предоставляет convert
sudo apt install imagemagick
Примечание: convert
может обрабатывать изображения WebP изначально в Ubuntu 20.04 и новее; однако в более старых версиях, таких как Ubuntu 18.04 и 16.04, сжатие и распаковка WebP фактически делегированы в cwebp
и dwebp
из webp
упаковка. В результате, если вы используете эти старые выпуски, вам также необходимо установить webp
:
sudo apt install webp
Получите mime-тип изображений WebP (см. Используйте dwebp & webpmux , шаг 2)
Получите номер версии libgnnome-desktop
используется Nautilus и при необходимости исправляет проблемы с песочницей (пропустите этот шаг, если вы используете Nemo или Caja)
Выполните эту команду, чтобы получить номер версии libgnome-desktop
:
apt list - установлен | grep libgnome-desktop | вырезать -d '' -f 2 | вырезать -d '-' -f 1
Если результат 3.28.2 , то вам нужно сделать следующее (в противном случае перейти к следующему шагу):
bwrap
в / usr / local / bin
:
Судо нано / usr / local / bin / bwrap
нано
). nano
(нажмите Ctrl + O , введите , Ctrl + X ). sudo chmod + x / usr / local / bin / bwrap
Обоснование: convert
требует определенных файлов в / etc
и / var
для правильной работы, но Nautilus использует libgnnome-desktop
3.28.2 (в частности, в Ubuntu 18.04) не монтирует эти каталоги в песочнице , что приводит к сбоям в создании эскизов. Приведенный выше сценарий bwrap
устраняет проблему, добавляя каталоги, необходимые для convert
, в песочницу (дополнительные сведения см. В статье ).
Создайте запись в миниатюре для изображений WebP (см. Используйте dwebp & webpmux , шаг 4 для получения дополнительной информации)
Содержимое ~ / .local / share / миниатюры / webp.thumbnailer
с convert
в качестве программы thumbnailer:
[Запись в эскизе]
Exec = / usr / bin / convert% i [0] -thumbnail% sx% s png:% o
MimeType = изображение / webp;
Обоснование:
png:
, потому что Nemo, Caja и некоторые версии Nautilus не выдают выходные эскизы в виде .png
расширение. Без png:
, convert
просто создает файлы в том же формате, что и входной (в данном случае WebP) для этих файловых менеджеров, что приводит к ошибочным эскизам. -thumbnail% sx% s
используется вместо просто -thumbnail% s
или -эскиз x% s
, чтобы гарантировать, что ширина и высота выходного эскиза не превышает 256 или 128 пикселей, что соответствует поведению официальных эскизов . -thumbnail% s
ограничивает только ширину, а -thumbnail x% s
ограничивает только высоту (см. Геометрия изображения от ImageMagick) . [0]
указывается так, что, если входное изображение является анимированным WebP, только первый кадр распаковывается в миниатюру PNG. Примечания:
imagemagick
6.9.10-68 или новее (в Ubuntu 21.04 и новее), который поддерживает анимированное кодирование и декодирование WebP, эта запись в миниатюре будет создавать эскизы для как анимированных, так и неанимированных изображений WebP. Однако в более старых версиях будут созданы только эскизы для неподвижных изображений WebP. libgnnome-desktop
3.36.1 (в частности, в Ubuntu 20.04), тогда /usr/bin/convert-im6.q16
должен быть используется вместо / usr / bin / convert
:
Exec = / usr / bin / convert-im6.q16% i [0] -thumbnail% sx% s png:% o
Это связано с тем, что в этой версии libgnnome-desktop
, /usr/bin/convert-im6.q16
виден в песочнице , а / usr / bin / convert
нет ( Тиана тоже это заметила).Очистите старые кешированные эскизы и перезапустите файловый менеджер (см. Использовать dwebp & webpmux , шаг 5)
gm
gm
(с ] graphicsmagick
) поддерживает WebP в Ubuntu 16.04 и новее.
Установите graphicsmagick
, который предоставляет инструмент gm
sudo apt install graphicsmagick
Получите mime-type изображений WebP (см. Используйте dwebp & webpmux , шаг 2).
Создайте запись в миниатюре для изображений WebP ( см. Используйте dwebp & webpmux , шаг 4 для подробностей)
Содержимое ~ / .local / share / thumbnailers / webp.thumbnailer
с gm
как программа для создания эскизов:
[Запись в эскизе]
Exec = / usr / bin / gm convert% i [0] -thumbnail% sx% s png:% o
MimeType = изображение / webp;
Примечание: gm
не поддерживает анимированные файлы WebP, поэтому эта запись в миниатюре создает эскизы только для неанимированных изображений WebP.
Очистите старые кешированные эскизы и перезапустите файловый менеджер (см. Используйте dwebp & webpmux , шаг 5)
totem-video-thumbnailer
Как предложено Ян Бромс , тотем-видео-миниатюра
также можно использовать для миниатюр изображений WebP.
Установите totem
и gstreamer1.0-plugins-bad
sudo apt install totem gstreamer1.0-plugins-bad
Пакет totem
предоставляет totem-video-thumbnailer
, а gstreamer1.Пакет 0-plugins-bad
содержит кодеки, необходимые totem-video-thumbnailer
для обработки изображений WebP.
Примечание: totem
- видеоплеер по умолчанию на рабочих столах GNOME, поэтому он предустановлен в Ubuntu. gstreamer1.0-plugins-bad
не предустановлен, но, вероятно, потому, что он указан только как предлагаемый пакет для totem
.
Получите mime-type изображений WebP (см. Используйте dwebp & webpmux , шаг 2).
Создайте запись в миниатюре для изображений WebP ( см. Используйте dwebp & webpmux , шаг 4 для подробностей)
Содержимое ~ / .local / share / thumbnailers / webp.thumbnailer
с totem-video-thumbnailer
в качестве программы-эскиза:
totem
3.11.90 и новее): см. Ответ Яна Бромса тотем
):
[Запись в эскизе]
Exec = / usr / bin / totem-video-thumbnailer -s% s --raw% u% o
MimeType = изображение / webp; аудио / x-рифф;
Обоснование: totem-video-thumbnailer
из totem
старше 3.11.90 по умолчанию добавляет границы (наложение пленки) к эскизам. Параметр - raw
используется для отключения этой функции.
Примечание: totem-video-thumbnailer
не поддерживает анимированный WebP, поэтому эта запись в миниатюре будет создавать миниатюры только для неподвижных изображений WebP.
Очистите старые кешированные эскизы и перезапустите файловый менеджер (см. Использовать dwebp & webpmux , шаг 5)
ffmpeg
ffmpeg
поддерживает декодирование WebP на Ubuntu 16.04 или новее.
Установите ffmpeg
sudo apt install ffmpeg
Получите mime-type изображений WebP (см. Используйте dwebp & webpmux , шаг 2)
Создайте запись в миниатюре для изображений WebP (подробнее см. Используйте dwebp & webpmux , шаг 4)
Содержимое ~ / .local / share / thumbnailers / webp.thumbnailer
с ffmpeg
в качестве программы для миниатюр:
[Запись в эскизе]
Exec = / usr / bin / ffmpeg -y -i% i -filter scale =% s:% s: force_original_aspect_ratio = 1 -f apng% o
MimeType = изображение / webp;
Обоснование:
-y
указано, чтобы заставить ffmpeg
перезаписывать выходные эскизы во временном каталоге. Без этой опции неудачные эскизы не могут быть восстановлены. -f apng
(см. Использовать преобразование , шаг 4). apng
на самом деле предназначен для создания анимированных файлов PNG, но если входом является неподвижное изображение, создается только обычный PNG. scale =% s:% s: force_original_aspect_ratio = 1
используется так, чтобы наибольший размер выходного эскиза составлял не более 128 или 256 пикселей (что соответствует поведению официальных эскизов ) . См. документацию FFmpeg для фильтра scale
для получения более подробной информации. Примечание. ffmpeg
не поддерживает анимированные изображения WebP, поэтому эта запись в миниатюре создает только эскизы для неподвижных изображений WebP.
Очистите старые кешированные эскизы и перезапустите файловый менеджер (см. Используйте dwebp & webpmux , шаг 5)
Протестировано на → | Ubuntu 14.04 | Ubuntu 16.04 | Ubuntu 18.04 | Ubuntu 20.04; Linux Mint Cinnamon 20; Ubuntu MATE 20.04 | Ubuntu 20.10 | Ubuntu 21.04 |
---|---|---|---|---|---|---|
dwebp & webpmux | ✔️ анимированный |
✔️ анимированный |
✔️ анимированный |
✔️ анимированный |
✔️ анимированный |
✔️ анимированный |
dwebp | ✔️ | ✔️ | ✔️ -размер 0 |
✔️ -размер 0 |
✔️ -размер 0 |
✔️ -размер 0 |
преобразование | ❌️ | ✔️ webp |
✔️ webp bwrap |
✔️ convert-im6.q16 |
✔️ | ✔️ анимированный |
gm | ❌️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
тотем-видео-миниатюра | ✔️ - raw |
✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
ffmpeg | N / A | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Другие решения не работали на моей Ubuntu 20.04, и (после некоторого анализа) я обнаружил, что в эти дни Nautilus запускает миниатюры через bwrap
.
Тем не менее, /usr/bin/convert
на моем компьютере имеет символическую ссылку на /etc/alternatives/convert
, которая, в свою очередь, связана с /usr/bin/convert -im6.q16
. Проблема в том, что, поскольку /etc
в целом не связан с bwrap
, используемым Nautilus, окончательный путь не будет найден.
Это работает для меня, но вам может потребоваться настроить точный путь convert
:
[Thumbnailer Entry]
Exec=/usr/bin/convert-im6.q16 -thumbnail %s %i %o
MimeType=image/x-webp;image/webp;image/x-dds;
ImageMagick имеет возможность конвертировать изображения webp и dds. Полный список поддерживаемых форматов находится здесь Форматы ImageMagick.
Помните, чтобы это работало, вам нужно сначала установить ImageMagick.
Теперь вы можете добавить файл webp.thumbnailer
в /usr/share/thumbnailers
с помощью следующих строк:
[Thumbnailer Entry]
Exec=/usr/bin/magick %i -thumbnail %s %o
MimeType=image/x-webp;image/webp;image/x-dds;
И, наконец, очистить кэшированные миниатюры с помощью следующих команд:
rm ~/.cache/thumbnails/fail/gnome-thumbnail-factory/*
rm ~/.cache/thumbnails/large/*
rm ~/.cache/thumbnails/normal/*
nautilus -q
] Из Wikipedia Webp. Являясь производным от видеоформата VP8, он является дочерним проектом формата мультимедийных контейнеров WebM. Поэтому я попробовал totem-video-thumbnailer, и он работает.
[Thumbnailer Entry]
TryExec=/usr/bin/totem-video-thumbnailer
Exec=/usr/bin/totem-video-thumbnailer -s %s %u %o
MimeType=image/webp;image/x-webp;