【问题标题】:Decode JPEG image stripped from inside a PDFs file解码从 PDF 文件中剥离的 JPEG 图像
【发布时间】:2015-05-29 04:50:28
【问题描述】:

我有将jpgs 解压缩为位图的代码,这对于JPEG 文件来说效果很好,但是当我将代码输入为JPEG 时,我直接从PDF 中剥离XObject 我得到了错误。

Adobe 阅读器可以很好地显示图像,所以我不认为它已损坏。我已经阅读了JPEGPDFs 文档,没有发现任何明显的问题。

我的问题是,嵌入在 PDF 流和普通 JPEG 中的“JPEG”有什么不同吗?如果是这样,那是什么?

注意:我可以手动打开 PDF,复制图像,粘贴到绘图中,然后保存......当我这样做时,一切正常......我的问题是我需要这个自动化。

当我的代码解析 PDF、剥离图像流、将二进制文件转储到文件中,然后我尝试打开该文件时,它不起作用。我错过了什么?

我的错误似乎发生在霍夫曼解码过程中,cdtHuffman 表似乎可以正常读取。

【问题讨论】:

  • 我写了可以做同样事情的代码。你能发布一个示例图像,我会在我的设备上测试它。
  • 也许你可以使用pdfimages...en.m.wikipedia.org/wiki/Pdfimages
  • 我无法发布示例图像,但我用来解压缩图像的代码来自这里:xbdev.net/image_formats/jpeg/jpeg_decoder_source/…
  • 我无法发布示例图像,但我用来解压缩图像的代码来自这里:xbdev.net/image_formats/jpeg/jpeg_decoder_source。 “BuildHuffmanTable”函数中的这段代码有一个错误,但是一旦我修复了这段代码就可以按前面描述的那样工作。 PDF jpg 导致我在函数“ProcessHuffmanDataUnit”中出现错误
  • 如果我们也看不到您尝试解码的文件,那么查看您正在使用的源代码是没有用的。 PDF 文件还支持 JPEG2000 流,这可能是您的问题。向我们出示文件,我们会给您答复。

标签: image jpeg huffman-code compression pdf-scraping


【解决方案1】:

请原谅我使用答案部分,但我溢出了评论部分:

我的问题: 1. 什么代码无法解码 JPEG?你说你“有代码”,但它是从哪里来的?为什么你认为它是可靠的?

  1. JPEG 流的文件格式是什么? JFIF、ADOBE、EXIF,未指定?

您的解码器无法处理文件格式中的某些内容吗?您的编码器会检查不同类型的 APPn 标记吗?

  1. 什么是 JPEG 格式?什么类型的 SOS 标记?

此编码器源是否处理所有正常格式?基线、扩展、顺序、渐进?如果你有渐进式 JPEG 和只做基线的编码器,你就会遇到问题。

  1. JPEG 流有多少个组件?

一些 Adob​​e 文件有 4 个组件,而解码器可能只能处理 1 或 3 个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-02
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多