ImageMagick convert ne peut pas convertir en webp

28

Sur Ubuntu 12.04, ImageMagick ne semble pas prendre en charge webp.

convert flyer.png flyer.webp

Crée un fichier png avec l'extension webp.

Sur les documents webp, il est indiqué que ImageMagick prend en charge webp

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

J'ai ces deux installés:

  • libwebp-dev - Compression avec perte d'images photographiques numériques.
  • libwebp2 - Compression avec perte d'images photographiques numériques.

De plus, convert ne peut pas décoder un fichier webp.

Qu'est-ce qui ne va pas et est-ce un bug Ubuntu?

Janghou
la source
1
Vous pouvez répertorier les formats pris en charge avec convert -list format. Sur mon système, avec la même convertversion, webp n'apparaît pas.
chronitis
1
Thx, j'ai créé un rapport de bug sur Launchpad. Ensuite, il peut être corrigé pour nous tous. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Janghou
Cela affecte également debian 7 (wheezy), mais ils n'utilisent pas le tableau de bord pour les bugs.
earthmeLon

Réponses:

21

Corrigé dans 16.04

En 16.04 convert flyer.png flyer.webpfonctionne, bien qu'il webpsoit nécessaire:

sudo apt-get install webp

Sans webpinstallé, ce message d'erreur affichera:

convert: delegate failed `"cwebp" -quiet -q %Q "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310.
Janghou
la source
1
Malheureusement, webpImageMagick n'est pas reconnaissable en 7.0.8-27tant que délégué, mais vous devez installerlibwebp-dev
AbdelHady
20

Le paquet source Ubuntu pour imagemagick ne déclare pas de dépendance de build sur libwebp-dev. Ainsi imagemagick est construit sans support webp. Cela pourrait être considéré comme un bogue dans Ubuntu.

Sortie pertinente du processus de construction:

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

Et lorsque libwebp-devInstallez libwebp-dev est installé:

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

Si vous souhaitez résoudre ce problème juste pour vous-même, vous pouvez reconstruire le package et installer votre version:

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
la source
Thx, comment pouvons-nous corriger cela?
Janghou
1
Si vous voulez le réparer juste pour vous, vous pouvez reconstruire le paquet, j'ai édité la réponse pour inclure les informations.
Dennis Kaarsemaker
@Janghou Il est maintenant dans la liste des bogues d'Ubuntu. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Meteor
14

En attendant, on peut installer:

$ sudo apt-get install webp

Et utilisez les commandes dwebpet cwebppour décompresser / compresser de / vers le format de fichier webp.

Dima
la source
3
Cela permet également à l'idenfity d'imagemagick de fonctionner correctement avec les images webp. Il corrige les erreurs suivantes: identifier: échec du délégué "dwebp" -pam "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310. identify: unable to open image / tmp / magick-510118LyrHZ5A5Sr ': Aucun fichier ou répertoire de ce type @ error / blob.c / OpenBlob / 2712. identifier: impossible d'ouvrir le fichier `/ tmp / magick-510118LyrHZ5A5Sr ': Aucun fichier ou répertoire de ce type @ error / constituent.c / ReadImage / 540.
four43
1
Malheureusement, webpImageMagick n'est pas reconnaissable en 7.0.8-27tant que délégué, mais vous devez installerlibwebp-dev
AbdelHady
2

La prise en charge de WebP a également quelques problèmes de transparence avant la version 6.8.3, j'ai donc utilisé la version 6.8.9-9 de 15.04 Vivid, et je l'ai rétroportée vers 14.04 Trusty avec la prise en charge webp. À utiliser à vos risques et périls:

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

Au cas où vous souhaiteriez répéter cela, les étapes étaient les suivantes:

  • Utilisation backportpackage imagemagick --source vivid --destination trusty --workdir=imagemagick-backportpour récupérer la version de vivid et tar -xfextraire le fichier .deb.
  • Ensuite, debian/controlremplacez les dpkg-dev (>= 1.17.6)dépendances, ajoutez des dépendances pour libwebp-devet remplacez-les Architecture: any par amd64pour éviter les échecs de génération.
  • Ajout --with-webpen debian/rulesajoutant une entrée changelog avec dchet utiliser debuild -S -sdpour construire une seule source package.
  • Enfin, créez un compte sur le tableau de bord et suivez leurs instructions pour partager votre correctif.
James EJ
la source