ImageMagick转换无法转换为webp

在Ubuntu 12.04上,ImageMagick似乎不支持webp。

convert flyer.png flyer.webp

创建一个带有webp扩展名的png文件。

在https://developers.google.com/speed/webp/docs/using上声明ImageMagick支持webp

convert --version版本:ImageMagick 6.6.9-7 2012-08-17 Q16

我有两个:

  • libwebp-dev – 数字摄影图像的有损压缩。
  • libwebp2 – 数字摄影图像的有损压缩。

安装。

转换也无法解码webp文件。

怎么了,这是一个Ubuntu错误吗?

imagemagick的Ubuntu源包没有声明libwebp-dev的构建依赖。 因此,imagemagick在没有webp支持的情况下构建。 这可能被认为是Ubuntu中的一个错误。

构建过程的相关输出:

 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 

而当libwebp-dev 安装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 

如果您只想为自己修复此问题,可以重建软件包并安装您的版本:

 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 

同时可以安装:

 $ sudo apt-get install webp 

并使用dwebpcwebp命令从/向webp文件格式解压缩/压缩。

修正于16.04

在16.04 convert flyer.png flyer.webp工作,虽然需要webp

 sudo apt-get install webp 

如果没有安装webp ,此错误消息将显示:

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

WebP支持在6.8.3之前也存在一些透明度问题,因此我使用了15.04 Vivid的6.8.9-9,并通过webp支持将其向后移植到14.04 Trusty。 使用风险由您自行承担:

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

如果您想重复这一点,步骤如下:

  • 使用backportpackage imagemagick --source vivid --destination trusty --workdir=imagemagick-backport获取生动的版本和tar -xf来提取.deb
  • 然后在debian/control替换dpkg-dev (>= 1.17.6)依赖项,为libwebp-dev添加依赖libwebp-dev并用amd64替换Architecture: any以避免构建失败。
  • debian/rules添加--with-webp ,使用dch添加changelog条目并使用debuild -S -sd构建仅源包。
  • 最后,在启动板上设置一个帐户,并按照他们的说明分享您的修复程序。