O ImageMagick convert não pode converter para webp

28

No Ubuntu 12.04, o ImageMagick parece não suportar o webp.

convert flyer.png flyer.webp

Cria um arquivo png com extensão webp.

Nos documentos webp, é declarado que o ImageMagick suporta webp

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

Eu tenho estes dois instalados:

  • libwebp-dev - Compressão com perdas de imagens fotográficas digitais.
  • libwebp2 - Compressão com perdas de imagens fotográficas digitais.

Além disso, o convert não pode decodificar um arquivo webp.

O que há de errado, e isso é um bug do Ubuntu?

Janghou
fonte
1
Você pode listar os formatos suportados com convert -list format. No meu sistema, com a mesma convertversão, o webp não aparece.
chronitis
1
Thx, criei um relatório de erros no Launchpad. Então pode ser corrigido para todos nós. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Janghou
Isso também afeta o debian 7 (wheezy), mas eles não usam a barra de ativação para erros.
earthmeLon

Respostas:

21

Corrigido em 16.04

No 16.04 convert flyer.png flyer.webpfunciona, embora webpseja necessário:

sudo apt-get install webp

Sem webpinstalado, esta mensagem de erro será exibida:

convert: delegate failed `"cwebp" -quiet -q %Q "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310.
Janghou
fonte
1
Infelizmente webp, o ImageMagick não pode ser reconhecido 7.0.8-27como um delegado. Em vez disso, é necessário instalálibwebp-dev
lo.
20

O pacote fonte do Ubuntu para o imagemagick não declara uma dependência de compilação no libwebp-dev. Assim, o imagemagick é construído sem o suporte a webp. Isso pode ser considerado um bug no Ubuntu.

Saída relevante do processo de construção:

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

E quando o libwebp-devInstale libwebp-dev estiver instalado:

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

Se você deseja corrigir isso sozinho, você pode reconstruir o pacote e instalar sua versão:

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
fonte
Thx, como podemos corrigir isso?
Janghou
1
Se você deseja corrigi-lo apenas para si mesmo, pode reconstruir o pacote, editei a resposta para incluir as informações.
Dennis Kaarsemaker
@ Janghou Está na lista de bugs do Ubuntu agora. bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Meteoro
14

Nesse meio tempo, pode-se instalar:

$ sudo apt-get install webp

E use dwebpe cwebpcomandos para descompactar / compactar de / para o formato de arquivo webp.

Dima
fonte
3
Isso também permite que a idenfity do imagemagick funcione corretamente com imagens do webp. Ele corrige os seguintes erros: identificar: falha no delegado "dwebp" -pam "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310. identify: unable to open image / tmp / magick-510118LyrHZ5A5Sr ': Não existe esse arquivo ou diretório @ error / blob.c / OpenBlob / 2712. identificar: não é possível abrir o arquivo `/ tmp / magick-510118LyrHZ5A5Sr ': não existe arquivo ou diretório assim como @ error / constit.c / ReadImage / 540.
four43
1
Infelizmente webp, o ImageMagick não pode ser reconhecido 7.0.8-27como um delegado. Em vez disso, é necessário instalálibwebp-dev
lo.
2

O suporte ao WebP também possui alguns problemas de transparência antes da 6.8.3, então usei o 6.8.9-9 do 15.04 Vivid e o reportei para o 14.04 Trusty com o suporte do webp. Use por sua conta e risco:

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

Caso deseje repetir isso, as etapas foram:

  • Usando backportpackage imagemagick --source vivid --destination trusty --workdir=imagemagick-backportpara buscar a versão vívida e tar -xfextrair o.deb .
  • Em seguida, debian/controlsubstituindo a dpkg-dev (>= 1.17.6)dependência, adicionando dependências libwebp-deve substituindo Architecture: any poramd64 para evitar falhas de construção.
  • Adicionando --with-webpem debian/rules, adicionando uma entrada de changelog com dche usandodebuild -S -sd para construir uma fonte única embalagem.
  • Por fim, configure uma conta na barra de ativação e siga as instruções para compartilhar sua correção.
James EJ
fonte