gpt4 book ai didi

Java图像缩放而不将整个图像加载到内存中

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:31:12 26 4
gpt4 key购买 nike

我们有一些非常大的 jpg,用于在 A0 打印机上打印。

问题是我们需要将这个大图像转换为缩略图以便在一些 Java UI 中使用。

有什么方法可以在不将整个图像加载到内存的情况下转换图像(使用 Java)?目前,我们在尝试加载图像时遇到内存不足异常。

标准代码中是否有任何内容,或者我最好使用 jmagick?纯 Java 实现最适合我们的部署。

谢谢

最佳答案

我设法让它工作,完整代码如下。

调用 reader.setInput(iis, true, true);是我在上一篇文章中遗漏的魔法。

FileInputStream fin = new FileInputStream(source);

ImageInputStream iis = ImageIO.createImageInputStream(fin);

Iterator iter = ImageIO.getImageReaders(iis);
if (!iter.hasNext()) {
return;
}

ImageReader reader = (ImageReader) iter.next();

ImageReadParam params = reader.getDefaultReadParam();

reader.setInput(iis, true, true);

params.setSourceSubsampling(width, height, 0, 0);

BufferedImage img = reader.read(0, params);

ImageIO.write(img, "JPG", destination);

关于Java图像缩放而不将整个图像加载到内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10817597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com