Java高级图像缩放图像

问题描述:

我有一个非常大的图像(〜200,000x200,000像素)的形式的RenderedImage。我裁剪它,然后使用JAI的ScaleDescriptor(它返回一个RenderedOp)来缩放它。我的最终图像只有30x30,但是当我从缩小的图像中调用getAsBufferedImage(我首先获得PlanarImage)时,创建需要几分钟的时间。我猜想有一些参考资料可以回溯到需要这么长时间的原始图像,但我不确定。有谁知道为什么这需要这么长时间?Java高级图像缩放图像

感谢, 杰夫

随着JAI你正在建设一个渲染链;所以当你调用.scale时,它实际上并没有在这一点上进行缩放,而只是将它添加到链中(因此在调试器中它将是即时的)。只有在最后,当你意识到新图像中的像素时,操作才会发生。

您正在做的缩放量看起来很多,可能会非常昂贵。我几年没有做过JAI;你能指定缩放算法吗?当你可以避开更简单的事情时,它可能会做不必要的插值。

+0

@danpaq,谢谢你,让我试试,看看我能想出。你会推荐其他图书馆在大图像上进行图像缩放和裁剪吗?我不需要使用JAI。 – 2010-12-22 17:17:17

尝试http://www.imagemagick.org/script/index.php你会看到更好的画面质量,