Java高级图像缩放图像
问题描述:
我有一个非常大的图像(〜200,000x200,000像素)的形式的RenderedImage。我裁剪它,然后使用JAI的ScaleDescriptor(它返回一个RenderedOp)来缩放它。我的最终图像只有30x30,但是当我从缩小的图像中调用getAsBufferedImage
(我首先获得PlanarImage
)时,创建需要几分钟的时间。我猜想有一些参考资料可以回溯到需要这么长时间的原始图像,但我不确定。有谁知道为什么这需要这么长时间?Java高级图像缩放图像
感谢, 杰夫
答
随着JAI你正在建设一个渲染链;所以当你调用.scale时,它实际上并没有在这一点上进行缩放,而只是将它添加到链中(因此在调试器中它将是即时的)。只有在最后,当你意识到新图像中的像素时,操作才会发生。
您正在做的缩放量看起来很多,可能会非常昂贵。我几年没有做过JAI;你能指定缩放算法吗?当你可以避开更简单的事情时,它可能会做不必要的插值。
@danpaq,谢谢你,让我试试,看看我能想出。你会推荐其他图书馆在大图像上进行图像缩放和裁剪吗?我不需要使用JAI。 – 2010-12-22 17:17:17