我能够使用Ned Batchelder's python code(我转换为C ++)从pdf文件中提取jpgs。我想知道是否可以使用相同的技术来提取tiff文件,如果是这样,有没有人知道适当的偏移和标记来找到它们? 谢谢, 大卫
答案 0 :(得分:3)
PDF文件可能包含不同的图像数据(毫不奇怪)。
最常见的情况是:
最近,我(作为PDF库的开发者)开始注意到越来越多的带有JBIG2图像数据的PDF。此外,JPEG2000有时可以放入PDF。
我应该说,您可能无需外部库就可以将JPEG / JBIG2 / JPEG2000数据提取到相应的*.jpeg
/ *.jp2
/ *.jpx
文件中,但要为各种奇怪的PDF做好准备由破碎的发电机发出。此外,PDF经常使用对象流,因此您需要为PDF实现复杂的解析器。
传真数据(即您可能称之为TIFF的内容)应至少打包成有效的TIFF。例如,您可以从开源libtiff借用一些代码。
然后是原始栅格数据。我认为在没有图书馆帮助的情况下尝试提取这些数据是没有意义的。当然,你可以做到这一点,但这需要数月的工作。
因此,如果您尝试仅从一组使用相同生成器创建的PDF中提取特定类型的图像数据,那么您的任务可能是可行的。在所有其他情况下,我建议节省时间,金钱和头发,并使用库来完成任务。
答案 1 :(得分:1)
PDF文件将Jpegs存储为实际的JPEGS(DCT和JPX编码),因此在大多数情况下,您可以将数据翻录出来。使用Tiffs,您正在寻找CCITT数据(但您需要为数据添加标题以使其成为Tiff)。我在http://www.jpedal.org/PDFblog/2010/09/understanding-the-pdf-file-format-images/和http://www.jpedal.org/PDFblog/2011/07/extract-raw-jpeg-images-from-a-pdf-file/撰写了2篇关于PDF文件图片的博客文章,这可能有所帮助。