Командная строка конвертировать WebP в JPG?

62

Я использую Ubuntu 12.04. Я установил libwebp2&libwebp-dev

Пока что в сети не найдено ни одного примера преобразования webp в jpg.

Некоторые файлы webp могут быть легко преобразованы с помощью imagemagick с командой

convert file.webp file.jpg

но многие файлы webp не могут быть преобразованы и выдают ошибку:

convert: no decode delegate for this image format `file.webp' @ error/constitute.c/ReadImage/532.
convert: missing an image filename `file.jpg' @ error/convert.c/ConvertImageCommand/3011.

-------- добавил

Это файл: http://www.filedropper.com/file_144

apasajja
источник
Не могли бы вы опубликовать некоторые файлы, которые не могут быть преобразованы, чтобы мы могли попробовать?
Terdon
Любые ошибки, когда ImageMagick не удается конвертировать?
Дартонв
@dartonw Ошибка была обновлена
apasajja
@terdon Я понятия не имею, какой веб-хостинг поддержки изображений
apasajja
Странно, что IM конвертирует некоторые файлы webp, а не другие. Можно ли просмотреть те, которые не удалось, в браузере или графическом редакторе (возможно, они повреждены)? Как вы установили IM? AFAIK, он должен быть специально скомпилирован с поддержкой webp после установки libwebp [-devel].
Дартонв

Ответы:

85

Google уже предоставил инструмент для декодирования изображений webp в libwebpпакете, ваш загруженный файл работает на Arch.

dwebp file.webp -o abc.png

Для инструмента кодирования, проверьте cwebpкоманду.

В Ubuntu вы можете установить инструменты с:

sudo apt install webp

На RHEL / CentOS:

 yum install libwebp libwebp-tools

И вы можете рассмотреть возможность использования этого онлайн-инструмента .

маргаритка
источник
7
К сожалению, dwebp только конвертирует webp в png, но не в jpg.
Румпель
2
@rumpel thx, он не смог открыть .jpg, но когда я поставил .png, это сработало!
Водолей Сила
3
В 14.04 мне нужно было установить пакет, webpон был недоступен, пока я его не установил. Я был смущен , потому что я установить все libwebpи libweb-devпакеты.
TryTryAgain
1
Используйте dwebpдля webp-> png, а затем convertдля png-> jpg. Используя трубу. dwebp 1.webp -o - | convert - 1.jpg
Стив
2
Для окон используйте следующую команду для% f в (* .webp): dwebp.exe "% f" -o "% ~ nf.png"
Матия Грчич
29

ffmpeg может это сделать. Полезно, если у вас уже есть ffmpeg. Нет необходимости устанавливать другие инструменты.

Просто:

ffmpeg -i file.webp out.png
Rishav
источник
Это работает, но PNG в 11 раз больше.
РонДжон
18

Конвертировать все файлы WebP в каталоге

find ./ -name "*.webp" -exec dwebp {} -o {}.png \;

Примечание: dwebp находится в пакете libwebp

Джефф Макхейл
источник
5
Для Ubuntu 16.04 мне нужно было установить его с sudo apt-get install webp.
PhoneixS
Не знаю, является ли это функцией или ошибкой, но все файлы будут сохранены, а file.webpg.pngне простоfile.png
Феликс Розен
Это функция для простоты ... У меня есть алгоритм хеширования изображений, который автоматически переименовывает изображения, поэтому я намеревался переименовать файлы, используя это.
Джефф Макхейл
3

Из каталога, содержащего webpфайлы:

for x in *.webp; do ffmpeg -i $x $x.jpg; done
Бирам Сьюэлл
источник
2
используйте ${x%.webp}.jpgвместо того, $x.jpgчтобы удалять webp в целевом имени файла (украдено из stackoverflow.com/a/17844019/146745 )
andrej
1

Здесь есть еще один онлайн-инструмент, который может помочь вам в этом:

но если вам нужен локальный инструмент, вы можете использовать этот:

и используйте это так:

1) chmod a+x webpconv

2) ./webpconv -format PNG <YOUR_WEBP_FILE>.webp

Общая структура выглядит следующим образом:

webpconv [-output_dir dir] [-format format] [-quality quality] input_file(s)

Пример) Чтобы преобразовать изображение .png в WebP с качеством 90, введите:

webpconv -quality 90 /home/user/image_name.png

и преобразовать файл WebP в файл PNG:

webpconv -format PNG /home/user/image_name.webp

Ходжат Тахери
источник
1

Я нашел этот метод быстрее для моей необходимости 1 раз.

  1. Сделайте снимок экрана с открытым веб-изображением в Chrome.
  2. Вставить в программу рисования.
  3. Обрезать и сохранить.
PRS
источник
6
Спрашивающий искал решение для командной строки ...
jasonwryan
1
Я думаю, что это можно сделать в виде командной строки с помощью Shutter и создания снимка экрана без оконных декораций, все в сценарии; может быть весело кодировать :)
Водолей Power
0

Чтобы конвертировать несколько jpg в webp, используйте cwebp :

find ./ -name "*.jpg" -exec cwebp -q 70 {} -o {}.webp \

Thunar Custom Action:

for file in %F; do cwebp "$file" -o "${file%%.*}".webp; done

Thunar Custom Action, перемещение веб-изображений в подпапку:

mkdir %d/webp && cd %d; for file in %N; do cwebp "$file" -o "webp/${file%%.*}".webp; done

По умолчанию для Cwebp установлено значение качества 75.

user8547
источник
0

установите пакет webp с sudo apt install webp, после этого он должен работать.

törzsmókus
источник