Konwersja ImageMagick nie może przekonwertować na webp

28

W Ubuntu 12.04 ImageMagick nie obsługuje webp.

convert flyer.png flyer.webp

Tworzy plik png z rozszerzeniem webp.

W dokumentach webp stwierdzono, że ImageMagick obsługuje webp

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

Mam oba zainstalowane:

  • libwebp-dev - Utrata kompresji cyfrowych zdjęć.
  • libwebp2 - Utrata kompresji cyfrowych zdjęć.

Konwersja nie może również dekodować pliku webp.

Co jest nie tak i czy jest to błąd Ubuntu?

Janghou
źródło
1
Możesz wyświetlić listę obsługiwanych formatów za pomocą convert -list format. W moim systemie z tą samą convertwersją webp nie pojawia się.
chronitis
1
Dzięki, stworzyłem raport o błędach na Launchpad. Następnie można to naprawić dla nas wszystkich. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Janghou
Wpływa to również na debian 7 (wheezy), ale nie używają startera do błędów.
earthmeLon

Odpowiedzi:

21

Naprawiono w 16.04

W 16.04 convert flyer.png flyer.webpdziała, choć webpjest potrzebny:

sudo apt-get install webp

Bez webpzainstalowanego ten komunikat o błędzie pokaże:

convert: delegate failed `"cwebp" -quiet -q %Q "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310.
Janghou
źródło
1
Niestety, webpImageMagick nie rozpoznaje go 7.0.8-27jako delegata, zamiast tego musisz zainstalowaćlibwebp-dev
AbdelHady
20

Pakiet źródłowy Ubuntu dla imagemagick nie deklaruje zależności kompilacji od libwebp-dev. W ten sposób imagemagick jest budowany bez wsparcia webp. Można to uznać za błąd w Ubuntu.

Odpowiednie dane wyjściowe z procesu kompilacji:

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

A kiedy libwebp-devZainstaluj libwebp-dev jest zainstalowany:

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

Jeśli chcesz to naprawić tylko dla siebie, możesz odbudować pakiet i zainstalować swoją wersję:

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
Dennis Kaarsemaker
źródło
Dzięki, jak możemy to naprawić?
Janghou,
1
Jeśli chcesz to naprawić tylko dla siebie, możesz przebudować pakiet, zredagowałem odpowiedź, aby uwzględnić informacje.
Dennis Kaarsemaker
@Janghou Jest teraz na liście błędów Ubuntu. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Meteor
14

W międzyczasie można zainstalować:

$ sudo apt-get install webp

I użyj dwebpi cwebppoleceń do dekompresji / kompresji z / do formatu pliku webp.

Dima
źródło
3
Pozwala to również na prawidłową pracę imagemagick z obrazami webp. Naprawia następujące błędy: identyfikacja: delegowanie nie powiodło się "dwebp" -pam "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310. identify: unable to open image / tmp / magick-510118LyrHZ5A5Sr ': Brak takiego pliku lub katalogu @ error / blob.c / OpenBlob / 2712. identyfikacja: nie można otworzyć pliku `/ tmp / magick-510118LyrHZ5A5Sr ': Brak takiego pliku lub katalogu @ error / constit.c / ReadImage / 540.
four43
1
Niestety, webpImageMagick nie rozpoznaje go 7.0.8-27jako delegata, zamiast tego musisz zainstalowaćlibwebp-dev
AbdelHady
2

Obsługa WebP ma również pewne problemy z przezroczystością przed 6.8.3, więc użyłem 6.8.9-9 z 15.04 Vivid i przeniosłem go do 14.04 Trusty z obsługą webp. Używaj na własne ryzyko:

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

Jeśli chcesz to powtórzyć, kroki były następujące:

  • Użycie backportpackage imagemagick --source vivid --destination trusty --workdir=imagemagick-backportdo pobrania wersji vivid i tar -xfwyodrębnienia pliku .deb.
  • Następnie w ciągu debian/controlzastępując dpkg-dev (>= 1.17.6)zależność, dodając do zależności libwebp-devi zastąpienie Architecture: any ze amd64aby uniknąć błędów kompilacji.
  • Dodanie --with-webpna debian/rulesdodanie wpisu z changelog dchi używając debuild -S -sddo budowy pakietu źródłowego tylko.
  • Na koniec załóż konto w starterze i postępuj zgodnie z ich instrukcjami, aby udostępnić poprawkę.
James EJ
źródło