cjpeg терпит неудачу "нераспознанный формат ввода файла --- возможно, вам нужен -targa"
Я использую 14.04.1 LTS (сервер), я установил следующее: libjpeg8 libjpeg62 libjpeg-turbo8 libjpeg-progs libjpeg-turbo-progs
Файл изображения в вопросе возвращает это с file
Команда (я разделил на две строки):
$ file image.jpg
image.jpg JPEG image data, JFIF standard 1.01,
comment: "CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 100"
Когда я бегу cjpeg image.jpg
Я получаю следующую ошибку:
Unrecognized input file format --- perhaps you need -targa
Следуя совету, я запускаю cjpeg -targa image.jpg:
Invalid or unsupported Targa file
Поиск в Google вывел много файлов с исходным кодом для различных пакетов, которые вызывают cjpeg, и имел биты рассматриваемого сообщения об ошибке, разбросанные по файлу, но ничто не ссылалось на ту же ошибку, которую я получаю.
1 ответ
Вы получаете эту ошибку просто потому, что пытались сжать неподдерживаемый файл (например, файл JPG) из cjpeg
справочная страница:
cjpeg сжимает именованный файл изображения или стандартный ввод, если файл не назван, и создает файл JPEG/JFIF на стандартном выходе. В настоящее время поддерживаются следующие форматы входных файлов: PPM (цветной формат PBMPLUS), PGM (серый формат PBMPLUS), BMP, Targa и RLE (формат Utah Raster Toolkit). (RLE поддерживается, только если доступна библиотека URT.)
Когда я пытаюсь сжать файл JPG, я также получаю ту же ошибку:
$ cjpeg foo.jpg
Unrecognized input file format --- perhaps you need -targa
На самом деле это сообщение об ошибке по умолчанию, см. 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
определяется в cderror.h
:
#ifdef TARGA_SUPPORTED
JMESSAGE(JERR_UNKNOWN_FORMAT,
"Unrecognized input file format --- perhaps you need -targa")
Источник: http://www.ijg.org/