Java 快速缓冲图像压缩

Java 快速缓冲图像压缩,java,image-processing,Java,Image Processing,想知道是否有人知道用Java压缩缓冲JPEG图像的快速方法。在我的程序中,我使用robot类获取了大量图像,我需要对它们进行压缩,以便使用文件IO更快地保存它们,或者将它们放入数组列表中。(我真的不介意从真正高质量的图像到平均质量的图像)javax.imageio.imageio.write(图像,“jpg”,新文件(“someFile.jpg”))不够快?编写它们比压缩它们快得多。我觉得你写得不好。把它们排成一个线程,让线程把它们写在一个循环中。问题是机器人的实现方式太慢了。IIRC它以一种非

想知道是否有人知道用Java压缩缓冲JPEG图像的快速方法。在我的程序中,我使用robot类获取了大量图像,我需要对它们进行压缩,以便使用文件IO更快地保存它们,或者将它们放入数组列表中。(我真的不介意从真正高质量的图像到平均质量的图像)

javax.imageio.imageio.write(图像,“jpg”,新文件(“someFile.jpg”))不够快?

编写它们比压缩它们快得多。我觉得你写得不好。把它们排成一个线程,让线程把它们写在一个循环中。问题是机器人的实现方式太慢了。IIRC它以一种非常低效的方式处理内存。当时我觉得解决这个问题的唯一方法是编写自己的本机代码/JNI桥,并将其发送给一个NativeByteBuffer。您是否尝试过同时编写它们?将它们分批并同时处理每组。@davidSchwartz是的,你写的是我没有正确地排队,我使它在不压缩文件的情况下保存图像的速度快得多。我最初使用的while循环只是ImageIO.write(图像,“jpg”,新文件(“图像”+imageNumber)我替换了它,在那里我制作了一个新的短命线程,它接收图像并执行相同的fileIO操作。我现在唯一的问题是,当我将速度提高很多时,机器人类无法跟上,但我认为这将是另一个问题。图像io是一个昂贵的操作,
ImageIO.write(…)
很可能是在没有大量质量降低的情况下,您能找到的速度最快的。您似乎是对的。我将尝试以不同的方式处理图像,这可能不需要将图像写入硬盘