cjpeg falha “formato de entrada de arquivo não reconhecido - talvez você precise -targa”

1

Eu estou usando 14.04.1 LTS (servidor), eu instalei o seguinte: libjpeg8 libjpeg62 libjpeg-turbo8 libjpeg-progs libjpeg-turbo-progs

O arquivo de imagem em questão retorna isso com o comando file (eu divido em duas linhas):

$ file image.jpg
image.jpg JPEG image data, JFIF standard 1.01, 
comment: "CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 100"

Quando executo cjpeg image.jpg , recebo o seguinte erro:

Unrecognized input file format --- perhaps you need -targa

Seguindo o conselho, eu corro cjpeg -targa image.jpg:

Invalid or unsupported Targa file

A pesquisa google trouxe muitos arquivos de código-fonte para vários pacotes que chamam cjpeg e tinham pedaços da mensagem de erro em questão espalhados pelo arquivo, mas nada fazia referência ao mesmo erro que estou recebendo.

    
por Brian 13.08.2014 / 18:08

1 resposta

2

Você recebe este erro simplesmente porque tentou compactar um arquivo não suportado (como um arquivo JPG) na página cjpeg man:

  

cjpeg comprime o arquivo de imagem nomeado ou a entrada padrão se nenhum arquivo      é nomeado e produz um arquivo JPEG / JFIF na saída padrão. o      os formatos de arquivo de entrada suportados atualmente são: PPM (formato de cor PBMPLUS),       PGM (formato PBMPLUS em escala de cinza), BMP , Targa e RLE (Utah Raster      Formato do kit de ferramentas). (RLE é suportado apenas se a biblioteca URT for      disponível.)

Quando tento compactar um arquivo JPG, também recebo o mesmo erro:

$ cjpeg foo.jpg
Unrecognized input file format --- perhaps you need -targa

Na verdade, esta é a mensagem de erro padrão, consulte cjpeg.c

  switch (c) {
#ifdef BMP_SUPPORTED
  case 'B':
    return jinit_read_bmp(cinfo);
#endif
#ifdef GIF_SUPPORTED
  case 'G':
    return jinit_read_gif(cinfo);
#endif
#ifdef PPM_SUPPORTED
  case 'P':
    return jinit_read_ppm(cinfo);
#endif
#ifdef RLE_SUPPORTED
  case 'R':
    return jinit_read_rle(cinfo);
#endif
#ifdef TARGA_SUPPORTED
  case 0x00:
    return jinit_read_targa(cinfo);
#endif
  default:
    ERREXIT(cinfo, JERR_UNKNOWN_FORMAT);
    break;
  }

JERR_UNKNOWN_FORMAT é definido em cderror.h :

#ifdef TARGA_SUPPORTED
JMESSAGE(JERR_UNKNOWN_FORMAT,
     "Unrecognized input file format --- perhaps you need -targa")

Fonte: link

    
por Sylvain Pineau 21.10.2014 / 13:10