我尝试了几种方法this,并且基本上发现我不受I / O的限制(写给SSD和RAMDisk的时间差不多)。我知道有用于JPEG和PNG的工具/技术,例如:
JPEG-将输入流复制到FileOutputStream here
有时候我会从PDF中提取图像,所以我的流程看起来像PDFBox的ExtractImages-这可以非常快速地写入JPEG。 但是更普遍
ImageIOUtil.writeImage(image, suffix, out);
对于尺寸非常大的BufferedImage来说相当慢。
实际上,我会先从 PDImage pdImage 对象开始,然后再转换为BufferedImage(非常占用内存),如果有区别的话。