ImageMagick конвертировать не может конвертировать в WebP

28

В Ubuntu 12.04 ImageMagick не поддерживает webp.

convert flyer.png flyer.webp

Создает png файл с расширением webp.

На webp документации указано, что ImageMagick поддерживает webp

$ convert --version`
Version: ImageMagick 6.6.9-7 2012-08-17 Q16

У меня есть эти оба установлены:

  • libwebp-dev - Сжатие с потерями цифровых фотографических изображений.
  • libwebp2 - Сжатие с потерями цифровых фотографических изображений.

Кроме того, convert не может декодировать файл webp.

Что не так, и это ошибка в Ubuntu?

Janghou
источник
1
Вы можете перечислить поддерживаемые форматы с convert -list format. В моей системе с той же convertверсией webp не появляется.
хронит
1
Спасибо, я создал отчет об ошибках на Launchpad. Тогда это можно исправить для всех нас. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
13
Это также влияет на Debian 7 (wheezy), но они не используют панель запуска для ошибок.
earthmeLon

Ответы:

21

Исправлено в 16.04

В 16.04 convert flyer.png flyer.webpработает, хотя webpнеобходимо:

sudo apt-get install webp

Без webpустановки это сообщение об ошибке покажет:

convert: delegate failed `"cwebp" -quiet -q %Q "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310.
Janghou
источник
1
К сожалению webp, ImageMagick не может распознать его 7.0.8-27как делегата, вместо этого вам необходимо установитьlibwebp-dev
AbdelHady
20

Исходный пакет Ubuntu для imagemagick не объявляет зависимость сборки от libwebp-dev. Таким образом, imagemagick создается без поддержки webp. Это можно считать ошибкой в ​​Ubuntu.

Соответствующие результаты процесса сборки:

checking for WEBP... 
checking webp/decode.h usability... no
checking webp/decode.h presence... no
checking for webp/decode.h... no
checking for WebPDecodeRGB in -lwebp... no
checking if WEBP package is complete... no

И когда установлен libwebp-devУстановите libwebp-dev :

checking for WEBP... 
checking webp/decode.h usability... yes
checking webp/decode.h presence... yes
checking for webp/decode.h... yes
checking for WebPDecodeRGB in -lwebp... yes
checking if WEBP package is complete... yes

Если вы хотите исправить это только для себя, вы можете пересобрать пакет и установить свою версию:

cd /tmp
mkdir imagemagick
cd imagemagick
sudo apt-get build-dep imagemagick
sudo apt-get install libwebp-dev devscripts
apt-get source imagemagick
cd imagemagick-*
debuild -uc -us
sudo dpkg -i ../*magick*.deb
Деннис Каарсемакер
источник
Спасибо, как мы можем это исправить?
Janghou
1
Если вы хотите исправить это только для себя, вы можете пересобрать пакет, я отредактировал ответ, включив информацию.
Деннис Каарсемакер
@Janghou Сейчас в списке ошибок Ubuntu. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Метеор,
14

А пока можно установить:

$ sudo apt-get install webp

И используйте dwebpи cwebpкоманды для распаковки / сжатия из / в формат файла webp.

Дима
источник
3
Это также позволяет идентификатору imagemagick правильно работать с изображениями webp. Это исправляет следующие ошибки: идентифицировать: сбой делегата "dwebp" -pam "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310. identify: unable to open image / tmp / magick-510118LyrHZ5A5Sr ': нет такого файла или каталога @ error / blob.c / OpenBlob / 2712. определить: не удается открыть файл `/ tmp / magick-510118LyrHZ5A5Sr ': нет такого файла или каталога @ error / constitute.c / ReadImage / 540.
4:43
1
К сожалению webp, ImageMagick не может распознать его 7.0.8-27как делегата, вместо этого вам необходимо установитьlibwebp-dev
AbdelHady
2

Поддержка WebP также имеет некоторые проблемы с прозрачностью до 6.8.3, поэтому я использовал 6.8.9-9 из 15.04 Vivid и перенес его на 14.04 Trusty с поддержкой webp. Используйте на свой риск:

sudo add-apt-repository ppa:jamedjo/ppa
sudo apt-get update
sudo apt-get install imagemagick libmagickcore-6.q16-2

Если вы хотите повторить это, шаги были:

  • Использование, backportpackage imagemagick --source vivid --destination trusty --workdir=imagemagick-backportчтобы получить версию Vivid и tar -xfизвлечь .deb.
  • Тогда в debian/controlзамене dpkg-dev (>= 1.17.6)зависимости, добавив зависимости для libwebp-devи замены Architecture: any с , amd64чтобы избежать ошибок сборки.
  • Добавление --with-webpв debian/rules, добавив запись с журналом изменений dchи используя debuild -S -sdдля создания источника только пакет.
  • Наконец, создайте учетную запись на панели запуска и следуйте инструкциям, чтобы поделиться своим исправлением.
Джеймс Э.Дж.
источник