Como ativar o JPEG2000 (jp2) no ImageMagick?

9

Eu quero usar o ImageMagick para converter alguns arquivos de jp2 (JPEG-2000) para jpg. O comando para fazer isso é bom, mas eu não sei como ativar o delegado jp2 no ImageMagick.

Eu instalei o ImageMagick através do 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 bibliotecas a seguir possuem suporte interno e são listadas como representantes:

bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib

Editar : Eu deveria ter mencionado, eu tentei conversões de arquivo antes de começar a discutir com openjpeg-2 . Um comando como convert input.jp2 output.jpg me fornece a mensagem de erro:

convert: no decode delegate for this image format 'JP2' @ error/constitute.c/ReadImage/501.

Então, eu preciso fazer o jp2 funcionar. A biblioteca relevante é openjpeg-2 , e a página de delegados do ImageMagick fornece o tarball, openjpeg-2.0.0.tar.gz .

Ok, então eu fiz o download e segui as instruções para instalar no arquivo de instalação. Coisas normais: cmake . , sudo make install .

Mas agora, como eu configuro o ImageMagick para que ele 'capte' open-jpeg-2.0.0 ? Preciso reconstruir o ImageMagick da fonte para fazer isso? Ou há um comando que eu possa entrar para obter o ImageMagick para ativá-lo? Ou um arquivo que eu deveria mudar, etc?

Eu passei idades e anos pesquisando sobre isso, li muitas perguntas e respostas como on-line, mas ainda não as decifrei. É uma questão do meu conhecimento Linux, em vez de algo a ver com o ImageMagick per se , então eu realmente aprecio se alguém puder me ajudar a descobrir qual é a etapa que está faltando aqui. Obrigado.

    
por arokath 02.04.2017 / 22:01

3 respostas

2

Da minha instalação padrão do Image Magick 6.8.9.9 dos repositórios do Ubuntu 16.04, parece que o Jpeg200 ( .jp2 ) é totalmente suportado.

As conversões podem ser feitas com:

convert in.png out.jp2
convert in.jp2 out.jpg

Para opções de linha de comando esp. sobre as opções de codificação ou manipulação de imagens lado a lado, consulte documentação on-line do Image Magick .

No entanto, é preciso dizer que jp2 não está listado na lista de formatos suportados:

identify -list format

No entanto, aparentemente ainda funciona bem.

    
por Takkat 02.04.2017 / 22:45
1

@arokath Como você, não consegui encontrar o suporte a 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 depois %código%.

Observação : não sei qual deles fez o truque: o resumo em ordem alfabética no final de libopenjp2-7-dev listou o suporte a jp2 como configure , em vez de OpenJP2 que eu usei notará até que eu tenha instalado JP2 e reconfigurado; é bem possível que funcionou apenas com a primeira lib.

Além de libopenjp2-7-dev , ./configure e make , descobri que precisava (como sugerido nos documentos) "configurar o vinculador dinâmico": make install .

Agora, a saída de sudo ldconfig /usr/local/lib contém:

  J2C* rw-   JPEG-2000 Code Stream Syntax (2.1.0)
  J2K* rw-   JPEG-2000 Code Stream Syntax (2.1.0)
  JNX* r--   Garmin tile format
  JP2* rw-   JPEG-2000 File Format Syntax (2.1.0)
  JPC* rw-   JPEG-2000 Code Stream Syntax (2.1.0)
  JPM* rw-   JPEG-2000 File Format Syntax (2.1.0)
  JPT* rw-   JPEG-2000 File Format Syntax (2.1.0)
 JSON  -w+   The image format and characteristics
    
por user3294778 03.04.2017 / 22:11
1

Eu resolvo meu problema de ativar a delegação do openjp2 no Imagemagick.

Certifique-se de instalar:

  • openjp2 > = 2.1 (2.2 é a última versão disponível, consulte link )
  • pkg-config (esse é o meu problema)

Agora, quando você iniciar o ./configure , poderá ver a aberturajp2 delegação

DELEGATES = mpeg jbig jng jpeg lcms lzma openjp2 png tiff zlib

    
por Arnaud 15.06.2017 / 11:16