Thumbnailator支持流式处理图片可以避免将整张图片加载到内存中。您可以尝试使用流式处理来避免内存溢出问题如何处理
以下是使用Thumbnailator进行流式处理的示例代码:
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import net.coobird.thumbnailator.Thumbnails;
public class ImageResizer {
public void resizeImage(URL imageUrl, OutputStream outputStream, int width, int height) throws IOException {
try (InputStream inputStream = imageUrl.openStream()) {
Thumbnails.of(inputStream)
.size(width, height)
.outputFormat("jpeg")
.toOutputStream(outputStream);
}
}
public void resizeImage(File inputFile, OutputStream outputStream, int width, int height) throws IOException {
Thumbnails.of(inputFile)
.size(width, height)
.outputFormat("jpeg")
.toOutputStream(outputStream);
}
}
在以上示例代码中,resizeImage()方法接受一个URL或File对象作为输入,然后使用Thumbnails类对输入进行流式处理,避免将整张图片加载到内存中。处理后的图片将被输出到指定的OutputStream中。
您可以根据需要调整size()方法的参数来设置输出图片的大小。同时,您也可以根据需要调整outputFormat()方法的参数来设置输出图片的格式。
原文地址: http://www.cveoy.top/t/topic/bOyu 著作权归作者所有。请勿转载和采集!