ImageMagick convert kann nicht in webp konvertieren

28

Unter Ubuntu 12.04 scheint ImageMagick WebP nicht zu unterstützen.

convert flyer.png flyer.webp

Erstellt eine PNG-Datei mit der Erweiterung "webp".

In Webp-Dokumenten wird angegeben, dass ImageMagick Webp unterstützt

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

Ich habe diese beiden installiert:

  • libwebp-dev - Verlustbehaftete Komprimierung digitaler fotografischer Bilder.
  • libwebp2 - Verlustbehaftete Komprimierung digitaler fotografischer Bilder.

Außerdem kann convert eine Webp-Datei nicht dekodieren.

Was ist los, und ist das ein Ubuntu-Fehler?

Janghou
quelle
1
Sie können unterstützte Formate mit auflisten convert -list format. Auf meinem System mit derselben convertVersion wird webp nicht angezeigt .
Chronitis
1
Danke, ich habe einen Bugreport auf Launchpad erstellt. Dann kann es für uns alle behoben werden. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Janghou
Dies betrifft auch Debian 7 (wheezy), aber sie verwenden kein Launchpad für Fehler.
EarthMeLon

Antworten:

21

In 16.04 behoben

In 16.04 convert flyer.png flyer.webpfunktioniert, obwohl webpbenötigt wird:

sudo apt-get install webp

Ohne webpInstallation zeigt diese Fehlermeldung Folgendes an:

convert: delegate failed `"cwebp" -quiet -q %Q "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310.
Janghou
quelle
1
Leider webpist von ImageMagick nicht 7.0.8-27als Delegierter erkennbar , stattdessen muss man installierenlibwebp-dev
AbdelHady
20

Das Ubuntu-Quellpaket für imagemagick deklariert keine Build-Abhängigkeit von libwebp-dev. So wird imagemagick ohne Webp-Unterstützung erstellt. Dies könnte als Fehler in Ubuntu angesehen werden.

Relevante Ausgabe aus dem Build-Prozess:

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

Und wenn libwebp-devInstallieren Sie libwebp-dev installiert ist:

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

Wenn Sie dies nur für sich selbst beheben möchten, können Sie das Paket neu erstellen und Ihre Version installieren:

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
quelle
Danke, wie können wir das korrigieren?
Janghou
1
Wenn Sie es nur für sich selbst reparieren möchten, können Sie das Paket neu erstellen. Ich habe die Antwort so bearbeitet, dass sie die Informationen enthält.
Dennis Kaarsemaker
@Janghou Es ist jetzt in Ubuntu Fehlerliste. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Meteor
14

In der Zwischenzeit kann man installieren:

$ sudo apt-get install webp

Verwenden Sie die Befehle dwebpund cwebp, um das Webp-Dateiformat zu dekomprimieren / zu komprimieren.

Dima
quelle
3
Dadurch kann imagemagick auch problemlos mit Webp-Bildern arbeiten. Es behebt die folgenden Fehler: Identifizierung: Delegat fehlgeschlagen "dwebp" -pam "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310. identify: unable to open image / tmp / magick-510118LyrHZ5A5Sr ': Keine solche Datei oder Verzeichnis @ error / blob.c / OpenBlob / 2712. Identifizierung: Datei `/ tmp / magick-510118LyrHZ5A5Sr 'kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis @ error / constitu.c / ReadImage / 540.
04:43 Uhr,
1
Leider webpist von ImageMagick nicht 7.0.8-27als Delegierter erkennbar , stattdessen muss man installierenlibwebp-dev
AbdelHady
2

Die WebP-Unterstützung hat auch einige Probleme mit der Transparenz vor 6.8.3. Daher habe ich 6.8.9-9 von 15.04 Vivid verwendet und es auf 14.04 Trusty mit WebP-Unterstützung zurückportiert. Benutzung auf eigene Gefahr:

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

Falls Sie dies wiederholen möchten, waren die Schritte:

  • Verwenden Sie backportpackage imagemagick --source vivid --destination trusty --workdir=imagemagick-backport, um die Version von vivid abzurufen und die tar -xfzu extrahieren .deb.
  • Dann innerhalb debian/controlersetzen dpkg-dev (>= 1.17.6)Abhängigkeit, Hinzufügen von Abhängigkeiten libwebp-devund Ersetzen Architecture: any mit amd64Build - Ausfälle zu vermeiden.
  • Zugabe --with-webpin debian/rulesdas Hinzufügen eines Änderungseintrag dchund die Verwendung debuild -S -sdnur einer Quelle Paket zu erstellen.
  • Richten Sie schließlich ein Konto auf dem Launchpad ein und befolgen Sie die Anweisungen , um Ihr Update zu teilen.
James EJ
quelle