Ubuntu: ImageMagick convert can't convert to webp



Question:

On Ubuntu 12.04 ImageMagick doesn't seem to support webp.

convert flyer.png flyer.webp

creates an png file with webp extension.

On https://developers.google.com/speed/webp/docs/using is stated that ImageMagick does support webp

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

I have both:

  • libwebp-dev - Lossy compression of digital photographic images.
  • libwebp2 - Lossy compression of digital photographic images.

installed.

Also convert can't decode a webp file.

What's wrong, and is this an Ubuntu bug?


Solution:1

The Ubuntu source package for imagemagick does not declare a build dependency on libwebp-dev. Thus imagemagick gets built without webp support. This could be considered a bug in Ubuntu.

Relevant output from the build process:

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  

And when libwebp-dev Install libwebp-dev is installed:

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  

If you want to fix this just for yourself, you can rebuild the package and install your 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  


Solution:2

In the mean time one can install:

$ sudo apt-get install webp  

And use dwebp and cwebp commands to decompress/compress from/to webp file format.


Solution:3

Fixed in 16.04

In 16.04 convert flyer.png flyer.webp does work, although webp is needed:

sudo apt-get install webp  

Without webp installed, this error message will show:

convert: delegate failed `"cwebp" -quiet -q %Q "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310.  


Solution:4

WebP support also has some issues with transparency before 6.8.3, so I've used 6.8.9-9 from 15.04 Vivid, and backported it to 14.04 Trusty with webp support. Use at your own risk:

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

In case you wish to repeat this, the steps were:

  • Using backportpackage imagemagick --source vivid --destination trusty --workdir=imagemagick-backport to fetch vivid's version and tar -xf to extract the .deb.
  • Then within debian/control replacing dpkg-dev (>= 1.17.6) dependency, adding dependencies for libwebp-dev and replacing Architecture: any with amd64 to avoid build failures.
  • Adding --with-webp in debian/rules, adding a changelog entry with dch and using debuild -S -sd to build a source only package.
  • Finally, set up an account on launchpad and follow their instructions to share your fix.

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »