PDF-файлы могут содержать разные данные изображения (что неудивительно).
Наиболее распространенные случаи:
- Данные факса (CCITT Group 3 и 4)
- необработанные растровые данные с параметрами декодирования и необязательной палитрой, сжатые с использованием сжатия Deflate или LZW
- Данные JPEG
В последнее время я (как разработчик библиотеки PDF) начинаю замечать все больше и больше PDF-файлов с данными изображений JBIG2. Кроме того, JPEG2000 иногда может быть помещен в PDF.
Я должен сказать, что вы, вероятно, можете извлекать данные JPEG / JBIG2 / JPEG2000 в соответствующие файлы *.jpeg
/ *.jp2
/ *.jpx
без внешних библиотек, но будьте готовы ко всем видам странных PDF-файлов, генерируемых испорченными генераторами. Кроме того, в PDF-файлах довольно часто используются потоки объектов, поэтому вам потребуется реализовать сложный парсер для PDF.
Данные факса (т. Е. То, что вы, вероятно, называете TIFF) должны быть как минимум упакованы в действительный TIFF. Вы можете позаимствовать некоторый код для этого, например, из libtiff с открытым исходным кодом.
А потом приходят необработанные растровые данные. Я не думаю, что имеет смысл пытаться извлечь такие данные без помощи библиотеки. Конечно, вы могли бы сделать это, но это займет месяцы работы.
Итак, если вы пытаетесь извлечь только определенный тип данных изображения из набора PDF-файлов, созданных с помощью одного и того же генератора, то ваша задача, вероятно, выполнима. Во всех остальных случаях я бы порекомендовал сэкономить время, деньги и волосы и использовать библиотеку для выполнения задачи.