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 已安装:
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
并使用dwebp
和cwebp
命令从/向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
构建仅源包。 - 最后,在启动板上设置一个帐户,并按照他们的说明分享您的修复程序。