Como adicionar suporte ao formato de imagem JPEG

12

Depois de instalar o Imagemagick, testei-o com imagem jpg, assim:

identify 1.jpg

Mas, eu tenho esse resultado:

identify: no decode delegate for this image format `1.jpg' @ error/constitute.c/ReadImage/550.

Em seguida, tentei adicionar suporte ao formato JPEG:

yum install libjpeg libjpeg-devel

mas eu tenho:

Setting up Install Process
No package libjpeg available.
No package libjpeg-devel available.
Nothing to do

Eu pensei que precisava atualizar o apt-get, fiz:

apt-get install libjpeg libjpeg-devel

mas eu tenho:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libjpeg
E: Unable to locate package libjpeg-devel

Existe uma maneira fácil de instalar essas bibliotecas? Estou usando o Ubuntu 12.04.

Samir Sabri
fonte
2
Por que você está usando yum? Esse é o gerenciador de pacotes para uma distribuição diferente (Red Hat & Fedora), e se você usou yuma instalação do imagemagick, não estou surpreso que ele não consiga encontrar as bibliotecas! Você só deve instalar o software com o apt-get, a menos que realmente saiba o que está fazendo! Além disso, o "Ubuntu 12" não é específico o suficiente ... Existem duas versões do Ubuntu que começam com "12": 12.04 e 12.10. As versões do Ubuntu são baseadas na data de lançamento: 12.04 foi lançado em abril (mês # 04) de 12 e 12.10 foi lançado em outubro de 12. Por favor, certifique-se e especifique!
Trintathreeforty
Eu tenho o Ubuntu Release 12.04 (preciso) de 32 bits, não instalei o imagemagick com o yum. Em vez disso, tar o xvfz ImageMagick.tar.gz, cd ImageMagick-6.8.0, cd ImageMagick-6.8.0-4, ./configure , make, sudo make install, sudo ldconfig / usr / local / lib
Samir Sabri '
tente apt-get install libjpeg-dev
Shashank Singla
É uma ótima resposta lá http://askubuntu.com/a/746195 #
L. Percy
como no mundo pode qualquer pacote imagemagick ser QUALQUER uso sem suporte para JPEG pré-empacotado ?! É como vender pizza sem queijo, pão ou molho de tomate.
Sridhar Sarnobat

Respostas:

11

Corrigi o problema instalando da fonte a biblioteca de codificação jpeg disponível em http://www.ijg.org/files/jpegsrc.v8c.tar.gz .

cd /usr/local/src
tar xvfz jpeg-8c.tar.gz
cd jpeg-8c
./configure --enable-shared --prefix=$CONFIGURE_PREFIX
make
sudo make install

Em seguida, reinstalei o ImageMagick a partir da fonte:

cd /usr/local/src
tar xvfz ImageMagick-6.6.9-5.tar.gz
cd ImageMagick-6.6.9-5
export CPPFLAGS=-I/usr/local/include
export LDFLAGS=-L/usr/local/lib
./configure --prefix=/usr/local --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --disable-openmp
make
sudo make install

Agora está funcionando, eu testei assim:

sam@ubuntu:~/RubymineProjects/project/tmp$ identify 1.jpg
1.jpg JPEG 128x106 128x106+0+0 8-bit sRGB 2.22KB 0.000u 0:00.000
Samir Sabri
fonte
Isso funcionou para mim. Eu tive que adicionar a exportação LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usr / local / lib / .profile #
mv288
Eu instalei apenas o primeiro jpegsrc da fonte e reinstalei o ImageMagick via apt-gete ele também funcionou.
KYNG
6

Se você decidir criar o ImageMagick a partir da fonte, precisará estar preparado para resolver manualmente todas as dependências. A menos que você tenha uma necessidade premente, você deve instalar todo o software no Ubuntu a partir de um repositório - os repositórios oficiais ou um PPA.

Se você instalar o Imagemagick usando o APT ( apt-get, Synaptic, Software Center etc.), os arquivos JPG funcionarão perfeitamente, como confirmei na minha máquina.

Se o seu motivo para criar a partir do código-fonte for obter uma versão mais recente, procure um PPA que rastreie a versão mais recente. Se você está construindo a partir do código-fonte para ajudar no desenvolvimento, deve descobrir com o pessoal do Imagemagick exatamente o que é necessário para construí-lo com êxito. Pode ser que você precise especificar algum sinalizador ./configureou ter alguma biblioteca de desenvolvimento instalada antes da execução ./configure.

Mas normalmente, construir a partir da fonte complica desnecessariamente as coisas.

Ah, a propósito, Red Hat e Ubuntu usam nomes diferentes para pacotes. Portanto, se yumreclamar de um pacote ausente, não deve surpreender se apt-getnão conseguir encontrar um pacote com esse nome. Você não deve misturar gerenciadores de pacotes em um sistema, a menos que tenha um bom motivo para fazê-lo. Mesmo assim, tente todas as outras opções primeiro.

Scott Severance
fonte
Não tenho motivos específicos para criar a partir do código-fonte, se a instalação do Imagemagick usando o APT (apt-get, Synaptic, Software Center etc.) resolverá o problema de arquivos JPG, eu irei com ele, você pode me indicar como instalar o Imagemagick usando o APT como você fez?
Samir Sabri
@ SamirSabri: Basta procurar no Software Center ou Synaptic. Ou conclusão de tabulação uso em apt-getdescobrir o comando: sudo apt-get install imagemagick.
Scott Severance
A propósito, sugiro fortemente que você remova todas as tentativas anteriores de instalar o imagemagick antes de tentar instalar usando o meu método. Caso contrário, você pode acabar com conflitos.
Scott Severance
Embora eu tenha removido as tentativas anteriores, recebo um erro ao identificar a imagem jpg, assim: sam @ ubuntu: ~ / RubymineProjects / project / tmp $ identity 1.jpg @ erro / constitui.c / ReadImage / 550.
Samir Sabri
3

Observe que o no decode delegateerro pode (de maneira bastante confusa) resultar da imagemmagick (ou parte dela) não encontrar o arquivo. Portanto, antes de executar a reinstalação do imagemagick, verifique identify -list formate convert -list configurese o formato JPEG é suportado e, se for, o problema provavelmente estará em outro lugar.

Por exemplo, convert -resize 50% foo\ bar.jpgme deu um no decode delegate for this image formaterro, mas convert -resize 50% 'foo bar.jpg'funcionou perfeitamente.

Tgr
fonte
1

Se você acabou de instalar o php5-imagick, tente também instalar o pacote completo do imagemagick. Isso instalará todas as bibliotecas necessárias, como a jpeg.

sudo apt-get install imagemagick

Em seguida, reinicie o servidor da Web para recarregar todas as bibliotecas:

sudo service apache2 restart

A decodificação JPEG agora deve funcionar sem erros.

Epskampie
fonte
0

você tentou :

sudo apt-get install libjpeg62

se o comando acima não funcionar, siga o link a seguir.

http://psx-scene.com/forums/f150/help-install-libjpeg-libpng-ubuntu-9-10-livecd-64122/

Deixe-os saber, se isso foi útil, boa sorte ... :)

Rishi Kolvekar
fonte
Tentei sua solução, obtive: Lendo listas de pacotes ... Concluído Criando árvore de dependência Lendo informações de estado ... Concluído libjpeg62 já é a versão mais recente. 0 atualizado, 0 recém-instalado, 0 a remover e 6 não atualizados. Mas ainda recebo um erro ao identificar a imagem jpg: sam @ ubuntu: ~ / RubymineProjects / project / tmp $ identifique 1.jpg identifique: nenhum delegado de decodificação para este formato de imagem `1.jpg '@ error / constit.c / ReadImage / 550.
Samir Sabri
ok, achei o seguinte: blog.ericlamb.net/2008/11/… , verifique e me avise, obrigado pela sua resposta.
precisa saber é o seguinte
Eu apenas fixo-lo antes de ler o seu último comentário, obrigado, eu tê-lo em minha resposta abaixo
Samir Sabri
parece bom !!! :)
Rishi Kolvekar
0

| Maneira mais fácil | Faça o download do " Synaptic Package Manager " no Centro de Software. -> removeu pacotes libjpeg mais antigos * -> reinstalou libjpeg8 & libjpeg-turbo8 e libjpeg-turbo8-dev.

PS: Eu estava recebendo o mesmo erro. Levei 2 dias para ser resolvido. Meu erro ao tentar exibir uma imagem jpg:

no decode delegate for this image format `jpeg' @ error/constitute.c/readimage/504

Depois, faço o download do " Synaptic Package Manager " no Centro de Software. -> removeu pacotes libjpeg mais antigos * -> reinstalou libjpeg8 & libjpeg-turbo8 e libjpeg-turbo8-dev.

(* O gerenciador de pacotes synaptics mostrará dependência com outro pacote, remova apenas os pacotes libjpeg independentes mais antigos)

Depois disso, sou capaz de abrir imagens JPEG sem medo de erro.

Espero que ajude :)

Kevin Patel
fonte