web-dev-qa-db-ja.com

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のバグですか?

27
Janghou

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.
17
Janghou

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 Install 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
19

それまでの間にインストールできるもの:

$ Sudo apt-get install webp

そして、dwebpおよびcwebpコマンドを使用して、webpファイル形式を解凍/圧縮します。

13
Dima

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を使用してvividのバージョンを取得し、tar -xfを使用して.debを抽出します。
  • 次に、debian/control内でdpkg-dev (>= 1.17.6)依存関係を置き換え、libwebp-devの依存関係を追加し、ビルドエラーを回避するためにArchitecture: anyAMD64に置き換えます。
  • --with-webpdebian/rulesを追加し、dchで変更ログエントリを追加し、debuild -S -sdを使用してソースのみのパッケージをビルドします。
  • 最後に、ランチパッドでアカウントを設定し、 指示に従って 修正を共有します。
2
James EJ