Quero usar o ImageMagick para converter alguns arquivos de jp2 (JPEG-2000) para jpg. O comando para fazer isso é bom, mas não sei como habilitar o delegado jp2 no ImageMagick.
Eu instalei ImageMagick via gerenciador de pacotes: sudo apt-get install ImageMagick
.
Estou usando o ImageMagick 6.8.9-9, esta é a versão mais atualizada do ImageMagick disponível em apt-get
.
Atualmente, muitos dos principais tipos de arquivos são incluídos automaticamente. As seguintes bibliotecas têm suporte interno e estão listadas como delegadas:
bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib
Edit : Eu deveria ter mencionado, eu tentei conversões de arquivos antes de começar a discutir openjpeg-2
. Um comando como convert input.jp2 output.jpg
me dá a mensagem de erro:
converter: nenhum delegado de decodificação para este formato de imagem `JP2 '@ erro / constitui.c / ReadImage / 501.
Então, preciso que o jp2 funcione. A biblioteca relevante é openjpeg-2
, e a página de delegados do ImageMagick fornece o tarball openjpeg-2.0.0.tar.gz
,.
Ok, baixei e segui as instruções de instalação fornecidas no arquivo de instalação. Coisas normais: cmake .
, sudo make install
.
Mas agora, como faço para configurar o ImageMagick para que ele seja "captado" open-jpeg-2.0.0
? Preciso reconstruir o ImageMagick a partir da fonte para fazer isso? Ou existe um comando que eu possa inserir para que o ImageMagick o habilite? Ou um arquivo que devo mudar, etc?
Passei séculos e anos estudando isso, li muitas perguntas e respostas on-line, mas ainda não o decifrei. É uma questão do meu conhecimento do Linux, e não algo relacionado ao ImageMagick, por isso eu realmente aprecio isso se alguém puder me ajudar a descobrir qual é o passo que falta aqui. Obrigado.
gm convert in.jp2 out.jpg
Respostas:
Instale
libopenjp2-tools
e useopj_decompress
para converter jp2 para outra coisa:Este pacote fornece ferramentas de linha de comando que permitem conversões entre vários formatos e também ferramentas para codificar e decodificar os formatos de vídeo motion-jpeg2000:
fonte
Resolvo meu problema de habilitar a delegação openjp2 no Imagemagick.
Certifique-se de instalar:
Agora, quando você inicia,
./configure
você pode ver a delegação openjp2fonte
Na minha instalação padrão do Image Magick 6.8.9.9 a partir dos repositórios Ubuntu 16.04, parece que o Jpeg200 (
.jp2
) é totalmente suportado.As conversões podem ser feitas com:
Para opções de linha de comando esp. sobre opções de codificação ou manuseio de imagens lado a lado, consulte a documentação on-line do Image Magick .
No entanto,
jp2
é necessário dizer que não está listado na lista de formatos suportados:No entanto, aparentemente ainda funciona bem.
fonte
convert in.jp2 out.jpg
), recebo a mensagem de erro de que não tenho o delegado jp2: convert: no decode delegate para este formato de imagem 'JP2' @ erro / constit.c / ReadImage / 501. Estou no 6.8.9.9 (deconvert --version
: Versão: ImageMagick 6.8.9-9 Q16 x86_64 14/03/2017 imagemagick.org ). Realmente estranho que sua versão não lista o jp2 como um formato, mas ainda funcione! Os arquivos de saída jpg são válidos?libopenjp2-dev
e a reconstrução do código-fonte, ele ainda não está funcionando. Infelizmente, ainda estou 100% preso. Obrigado por suas respostas!@arokath Como você, não consegui encontrar o suporte jp2 na versão do ImageMagick que instalei através do apt-get (Ubuntu 16.04.1 LTS).
Antes de criar a partir da fonte (seguindo os documentos do ImageMagick ), instalei primeiro
libopenjp2-tools
e depoislibopenjp2-7-dev
.Nota : Não tenho certeza de qual deles fez o truque: o resumo alfabético no final do
configure
suporte jp2 listado comoOpenJP2
, em vez doJP2
qual eu não percebi até ter instaladolibopenjp2-7-dev
e reconfigurado; é bem possível que funcionou apenas com a primeira lib.Além
./configure
,make
emake install
, descobri que eu precisava (como sugerido na documentação) para "configure o vinculador dinâmico":sudo ldconfig /usr/local/lib
.Agora, a saída de
/usr/local/bin/identify -list format
contém:fonte
libopenjp2-tools
elibopenjp2-7-dev
useiapt-get
, construí a partir da fonte e executeisudo ldconfig /usr/local/lib
. (Em outras palavras, seguiu os documentos). AINDA não JP2. Argh! Está fazendo minha cabeça. Vou executar o processo novamente, apenas por precaução../configure
, ele verifica o JP2 e não o encontra: "verificando o LIBOPENJP2 ... não" . Como bônus, agora não está funcionando para conversões JPEG em geral. Quando tentei,convert in.png out.jpg
ele cria um arquivo, mas é inválido - é um arquivo PNG apenas com a extensão jpg. Não sei por que o JPEG deve ser quebrado repentinamente quando compilei da fonte!