Konversi ImageMagick tidak dapat dikonversi ke webp

28

Di Ubuntu 12,04 ImageMagick tampaknya tidak mendukung webp.

convert flyer.png flyer.webp

Membuat file png dengan ekstensi webp.

Pada webp, dokumen menyatakan bahwa ImageMagick mendukung webp

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

Saya sudah menginstal keduanya:

  • libwebp-dev - Kompresi lossy dari gambar foto digital.
  • libwebp2 - Kompresi lossy dari gambar foto digital.

Juga, konversi tidak dapat men-decode file webp.

Apa yang salah, dan apakah ini bug Ubuntu?

Janghou
sumber
1
Anda dapat mendaftar format yang didukung dengan convert -list format. Di sistem saya, dengan convertversi yang sama , webp tidak muncul.
chronitis
1
Terima kasih, saya membuat laporan bug di Launchpad. Maka itu bisa diperbaiki untuk kita semua. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Janghou
Ini juga mempengaruhi debian 7 (wheezy), tetapi mereka tidak menggunakan launchpad untuk bug.
earthmeLon

Jawaban:

21

Diperbaiki pada 16,04

Dalam 16,04 convert flyer.png flyer.webpberhasil, meskipun webpdiperlukan:

sudo apt-get install webp

Tanpa webpterinstal, pesan kesalahan ini akan menunjukkan:

convert: delegate failed `"cwebp" -quiet -q %Q "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310.
Janghou
sumber
1
Sayangnya webptidak dikenali oleh ImageMagick 7.0.8-27sebagai delegasi, sebaliknya Anda harus menginstallibwebp-dev
AbdelHady
20

Paket sumber Ubuntu untuk imagemagick tidak mendeklarasikan dependensi build pada libwebp-dev. Dengan demikian imagemagick dibangun tanpa dukungan webp. Ini bisa dianggap sebagai bug di Ubuntu.

Output yang relevan dari proses build:

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

Dan ketika libwebp-devInstal libwebp-dev diinstal:

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

Jika Anda ingin memperbaiki ini hanya untuk Anda sendiri, Anda dapat membangun kembali paket dan menginstal versi Anda:

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
Dennis Kaarsemaker
sumber
Terima kasih, bagaimana kita memperbaikinya?
Janghou
1
Jika Anda ingin memperbaikinya hanya untuk Anda sendiri, Anda dapat membangun kembali paket, saya mengedit jawaban untuk memasukkan info.
Dennis Kaarsemaker
@ Wanghou Ada di daftar bug Ubuntu sekarang. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Meteor
14

Sementara itu orang dapat menginstal:

$ sudo apt-get install webp

Dan gunakan dwebpdan cwebpperintah untuk dekompresi / kompres dari / ke format file webp.

Dima
sumber
3
Ini juga memungkinkan idenfitas imagemagick berfungsi dengan baik dengan gambar webp. Ini memperbaiki kesalahan berikut: mengidentifikasi: delegasi gagal "dwebp" -pam "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310. identify: unable to open image / tmp / magick-510118LyrHZ5A5Sr ': Tidak ada file atau direktori @ error / blob.c / OpenBlob / 2712 ini. identifikasikan: tidak dapat membuka file `/ tmp / magick-510118LyrHZ5A5Sr ': Tidak ada file atau direktori seperti itu @rrror.contute.c / ReadImage / 540.
four43
1
Sayangnya webptidak dikenali oleh ImageMagick 7.0.8-27sebagai delegasi, sebaliknya Anda harus menginstallibwebp-dev
AbdelHady
2

Dukungan WebP juga memiliki beberapa masalah dengan transparansi sebelum 6.8.3, jadi saya telah menggunakan 6.8.9-9 dari 15.04 Vivid, dan mendukungnya menjadi 14.04 Terpercaya dengan dukungan webp. Gunakan dengan risiko Anda sendiri:

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

Jika Anda ingin mengulanginya, langkah-langkahnya adalah:

  • Menggunakan backportpackage imagemagick --source vivid --destination trusty --workdir=imagemagick-backportuntuk mengambil versi yang jelas dan tar -xfuntuk mengekstrak .deb.
  • Kemudian dalam debian/controlmengganti dpkg-dev (>= 1.17.6)dependensi, menambahkan dependensi untuk libwebp-devdan mengganti Architecture: any dengan amd64untuk menghindari kegagalan pembangunan.
  • Menambahkan --with-webpdi debian/rules, menambahkan entri changelog dengan dchdan menggunakan debuild -S -sduntuk membangun sumber hanya paket.
  • Terakhir, buat akun di launchpad dan ikuti instruksi mereka untuk membagikan perbaikan Anda.
James EJ
sumber