ImageMagick convert no puede convertir a webp

28

En Ubuntu 12.04, ImageMagick no parece admitir webp.

convert flyer.png flyer.webp

Crea un archivo png con extensión webp.

En webp docs se afirma que ImageMagick admite webp

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

Tengo estos dos instalados:

  • libwebp-dev - Compresión con pérdida de imágenes fotográficas digitales.
  • libwebp2 - Compresión con pérdida de imágenes fotográficas digitales.

Además, convertir no puede decodificar un archivo webp.

¿Qué pasa, y esto es un error de Ubuntu?

Janghou
fuente
1
Puede enumerar formatos compatibles con convert -list format. En mi sistema, con la misma convertversión, webp no aparece.
cronitis
1
Gracias, creé un informe de error en Launchpad. Entonces se puede arreglar para todos nosotros. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Janghou
Esto también afecta a debian 7 (wheezy), pero no usan launchpad para errores.
earthmeLon

Respuestas:

21

Reparado en 16.04

En 16.04 convert flyer.png flyer.webpfunciona, aunque webpes necesario:

sudo apt-get install webp

Sin webpinstalado, este mensaje de error mostrará:

convert: delegate failed `"cwebp" -quiet -q %Q "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310.
Janghou
fuente
1
Lamentablemente, webpImageMagick no puede reconocerlo 7.0.8-27como delegado, sino que debe instalarlolibwebp-dev
AbdelHady
20

El paquete fuente de Ubuntu para imagemagick no declara una dependencia de compilación en libwebp-dev. Por lo tanto, imagemagick se crea sin soporte webp. Esto podría considerarse un error en Ubuntu.

Salida relevante del proceso de compilación:

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

Y cuando se instala libwebp-devInstalar 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

Si desea solucionar esto solo, puede reconstruir el paquete e instalar su versión:

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
fuente
Thx, ¿cómo podemos corregir esto?
Janghou
1
Si desea solucionarlo solo usted mismo, puede reconstruir el paquete, edité la respuesta para incluir la información.
Dennis Kaarsemaker
@ Janghou Está en la lista de errores de Ubuntu ahora. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Meteor
14

Mientras tanto, uno puede instalar:

$ sudo apt-get install webp

Y use dwebpy cwebpcomandos para descomprimir / comprimir desde / a formato de archivo webp.

Dima
fuente
3
Esto también permite que la identidad de imagemagick funcione correctamente con imágenes webp. Soluciona los siguientes errores: identificar: delegado fallido "dwebp" -pam "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310. identify: unable to open image / tmp / magick-510118LyrHZ5A5Sr ': No existe dicho archivo o directorio @ error / blob.c / OpenBlob / 2712. Identificar: no se puede abrir el archivo `/ tmp / magick-510118LyrHZ5A5Sr ': No existe dicho archivo o directorio @ error / constitut.c / ReadImage / 540.
four43
1
Lamentablemente, webpImageMagick no puede reconocerlo 7.0.8-27como delegado, sino que debe instalarlolibwebp-dev
AbdelHady
2

El soporte de WebP también tiene algunos problemas con la transparencia antes de 6.8.3, por lo que utilicé 6.8.9-9 de 15.04 Vivid y lo devolví a 14.04 Trusty con soporte de webp. Úselo bajo su propio riesgo:

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

En caso de que desee repetir esto, los pasos fueron:

  • Utilizando backportpackage imagemagick --source vivid --destination trusty --workdir=imagemagick-backportpara buscar la versión de vivid y tar -xfextraer el .deb.
  • Luego, dentro de la dependencia de debian/controlreemplazo dpkg-dev (>= 1.17.6), agregue dependencias libwebp-devy reemplace Architecture: any con amd64para evitar fallas de compilación.
  • Añadiendo --with-webpen debian/rules, añadiendo una entrada con cambios dchy utilizar debuild -S -sdpara construir una fuente único paquete.
  • Finalmente, configure una cuenta en la plataforma de lanzamiento y siga sus instrucciones para compartir su solución.
James EJ
fuente