从InputStream创建PDImageXObject

时间:2019-05-08 09:34:15

标签: java pdfbox

我正在尝试从巨大的JPEG文件(20000 x 20000像素[24位彩色])创建PDImageXObject

方法:

创建ByteArrayInputStream对象并分配超过1GB的RAM,这会导致异常

java.lang.OutOfMemoryError: Java heap space
at java.io.ByteArrayOutputStream.<init>(ByteArrayOutputStream.java:77) ~[?:1.8.0_211]

行中的异常:

buf = new byte[size];

我知道图像处理的字节数= W * H * color bits \ 9;

这就是为什么我不想一次加载所有文件字节的原因。

我尝试将最大堆大小设置为-Xmx2G,但这还不够。 我也尝试使用方法 LosslessFactory.createFromImage(...)JPEGFactory.createFromImage(...),但它们有相同的问题

有什么方法可以从InputStream(例如从FileInputStream)创建PDImageXObject,而无需创建BufferedImage或字节数组吗?

0 个答案:

没有答案