2015-05-29 3 views
0

У меня есть код, который распаковывает jpgs в битовые карты, которые отлично работают для файлов JPEG, однако, когда я кормлю код JPEG, я удалил его непосредственно из PDF-файлов XObject Я получаю ошибки.Декодирование изображения JPEG изнутри файла PDFs

Adobe Reader отображает изображение в порядке, поэтому я не верю, что оно повреждено. Я прочитал JPEG и PDFs документацию и не обнаружил очевидных проблем.

Мой вопрос в том, есть ли что-то другое в «JPEG», встроенном в поток PDF-файлов и обычный JPEG? И если да, то что это?

Примечание: Я могу вручную открыть PDF-файл, скопировать изображение, вставьте в краску, и сохранить ... когда я делаю это все работает .... моя проблема мне это нужно автоматизировать.

Когда мой код анализирует PDF-файлы, удаляет поток изображений, выдает двоичный файл в файл, а затем я пытаюсь открыть этот файл, он не работает. Что мне не хватает?

Мои ошибки, похоже, происходят в процессе декодирования Хаффмана, таблицы cdt и Huffman выглядят прекрасно.

+0

Я написал код, который может делать то же самое. Можете ли вы разместить образец изображения, и я проверю его на своей установке. – BitBank

+0

Возможно, вы могли бы использовать 'pdfimages' ... http://en.m.wikipedia.org/wiki/Pdfimages –

+0

Я не могу опубликовать пример изображения, но код, который я использую для распаковки изображений, появился здесь: http : //www.xbdev.net/image_formats/jpeg/jpeg_decoder_source/BuildHuffmanTable – Joe

ответ

0

пардон, используя раздел ответов, но я переполнена комментарий раздел:

Мои вопросы: 1. Что код неисправного для декодирования JPEG? Вы говорите, что у вас «есть код», но откуда это взялось? Почему вы думаете, что это надежный?

  1. Каков формат файла потока JPEG? JFIF, ADOBE, EXIF, не указано?

Может ли быть что-то в формате файла, который ваш декодер не может обработать? Проверяет ли ваш кодер разные типы маркеров APPn?

  1. Что такое формат JPEG? Какой тип SOS-маркера?

Этот источник кодировщика обрабатывает все нормальные форматы? Базовый, расширенный, последовательный, прогрессивный? Если у вас прогрессивный JPEG и кодировщик, который имеет базовый уровень, у вас будет проблема.

  1. Сколько компонентов имеет поток JPEG?

Некоторые файлы Adobe имеют 4 компонентов и декодеры могут только быть в состоянии обрабатывать 1 или 3.