我可以通过流而不是 BufferedImage 获得 PNG 文件的 PDImageXObject 吗?

Can I obtain a PDImageXObject for a PNG file via streams instead of BufferedImage?

我希望在这里能更好地了解 PdfBox。我们目前使用需要 BufferedImage 的 LosslessFactory,但是 BufferImage 完全存储在未压缩的内存中。我们正在处理超过 25mb 的 PNG 文件,所以这最终会非常耗费内存。我已经对文档进行了一些扫描,但找不到适用于 PNG 文件的非 BufferedImage 依赖解决方案。看来 JPG 可以直接使用流来避免这种情况?我是不是遗漏了什么,或者 PNG 文件需要 BufferedImage 是否有真正的技术原因?

是的,如果您使用 PDImageXObject.createFromByteArray() 是可能的。那个使用非 public class PNGConverter ,它使用 PNG 文件中的压缩。该方法自 2.0.18 以来就存在,由 Emmeran Seehuber 在 PDFBOX-4341.

中开发