Java高级图像缩放图像

Java高级图像缩放图像,java,image-processing,scale,imaging,jai,Java,Image Processing,Scale,Imaging,Jai,我有一个非常大的图像(~200000x200000像素),以渲染图像的形式。我裁剪了它,然后使用JAI的ScaleDescriptor(返回renderop)缩放它。我的最终图像只有大约30x30,但当我调用结果缩放图像中的getAsBufferedImage(我首先获得PlanarImage)时,创建需要几分钟。我猜有一些参考回到原始图像,这是花了这么长时间,但我不确定。有人知道为什么要花这么长时间吗 谢谢, Jeff与JAI一起构建渲染链;因此,当您调用.scale时,它实际上不会在该点进行

我有一个非常大的图像(~200000x200000像素),以渲染图像的形式。我裁剪了它,然后使用JAI的ScaleDescriptor(返回renderop)缩放它。我的最终图像只有大约30x30,但当我调用结果缩放图像中的
getAsBufferedImage
(我首先获得
PlanarImage
)时,创建需要几分钟。我猜有一些参考回到原始图像,这是花了这么长时间,但我不确定。有人知道为什么要花这么长时间吗

谢谢,
Jeff

与JAI一起构建渲染链;因此,当您调用.scale时,它实际上不会在该点进行缩放,而是将其添加到链中(因此在调试器中它将是即时的)。只有在最后,当您去实现新图像中的像素时,操作才会发生


您正在进行的缩放量似乎很多,而且可能非常昂贵。我已经好几年没做过JAI了;你能指定缩放算法吗?当你可以做一些简单得多的事情时,它可能会做一些不必要的插值。

试试看,你会看到更好的图片质量,

@danpaq,谢谢,让我试试看我能想出什么。您会推荐其他库在大型图像上进行图像缩放和裁剪吗?我不需要使用JAI。在另一个问题中,我看到开发人员设置了不同的插值设置和渲染提示。忘记链接:如果不设置这些设置,我不确定默认设置是什么。您可能需要使用速度和质量设置。虽然有这么多的数据,你可能永远不会得到超快的东西。谢谢。我试着把每件事都设置成高质量的,但仍然慢得很;你真的想“缩放”吗。200000x200000到30x30简直是疯了。根据基础图像格式(平铺?),裁剪量等,这可能是一个非常昂贵的操作。也许您需要定义自己的JAI操作符来进行重子采样,而不是尝试平均所有像素。