实际上我正在使用mupdf库来使用
来获取图像drawPage(bitmap,pdfwidth,pdfHeight,x,y,imageWidth,imageHeight);
但是图像的质量没有达到标记,所以我增加了imageHeight和imageWidth然后我得到了高质量的图像但是图像占用了太多的内存,所以我得到了内存异常。
任何人都可以建议哪种方法可以解决这个问题。 获得高质量的图像后我需要平铺吗?或者我可以做些什么来获得高质量的图像,减少记忆?
或其他最佳方式?
先谢谢。
答案 0 :(得分:0)
您正在处理未压缩的图像,因此内存使用量与宽度乘以高度直接相关。你不能做任何事情来减少内存使用量,同时保持高分辨率而不降低颜色深度,我怀疑你不想这样做。
所以解决方案就是磁贴(或者,根据你要完成的工作,波段 - 波段将是更常用的打印或导出到png的解决方案。)
你可以在java级别处理乐队。或者,如果您尝试导出为png或类似格式,则可以基于mupdf代码库中的source / tools / mudraw.c在C级编写代码,该代码库使用band来降低内存使用量(也可以使用多线程,以提高具有多个CPU核心的设备的速度。
如果不知道你想要达到什么目标,很难说哪种解决方案最好。如果您不熟悉C和JNI,那么最好使用java解决方案。