ImageMagick convert can't convert to webp
On Ubuntu 12.04 ImageMagick doesn't seem to support webp.
convert flyer.png flyer.webp
Creates a png file with webp extension.
On webp docs is stated that ImageMagick does support webp
$ convert --version`
Version: ImageMagick 6.6.9-7 2012-08-17 Q16
I have these both installed:
-
libwebp-dev
- Lossy compression of digital photographic images. -
libwebp2
- Lossy compression of digital photographic images.
Also, convert can't decode a webp file.
What's wrong, and is this an Ubuntu bug?
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.
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 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
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.
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 andtar -xf
to extract the.deb
. - Then within
debian/control
replacingdpkg-dev (>= 1.17.6)
dependency, adding dependencies forlibwebp-dev
and replacingArchitecture: any
withamd64
to avoid build failures. - Adding
--with-webp
indebian/rules
, adding a changelog entry withdch
and usingdebuild -S -sd
to build a source only package. - Finally, set up an account on launchpad and follow their instructions to share your fix.