使用java按需创建缩略图图像的成功案例

时间:2009-12-10 19:52:34

标签: java image imagemagick jai

我在服务器上有一堆图像。当客户端请求URL为图像时,客户端可以指定接收完整图像或获取图像的缩略图。所以,我正在寻求实现一个处理请求的servlet类型解决方案,并在需要时根据需要生成缩略图。它需要支持jpg,gif,tif,png。

看起来使用BufferedImage,JAI和/或ImageMagick是java的最佳选择(来自此post)。还有我可能错过的其他人吗?

另外,有没有人在java中实现类似的东西?如果是这样,对解决方案的任何建议都给出(1)相当下降的质量缩略图,(2)在处理图像时不会占用大量内存,(3)可接受的响应时间?

4 个答案:

答案 0 :(得分:6)

答案 1 :(得分:1)

这种解决方案的核心代码是

img.getScaledInstance(w, h, Image.SCALE_DEFAULT);

如果您不喜欢质量,可以使用Image.SCALE_SMOOTH

我一直在一个不太活跃的网站(每天约300个用户)上使用这个(包括一些额外内容,比如用图案替换颜色),但是一个用于提供许多图像的一个,这个没有没有造成任何问题,所以你可以自由使用它。

使用ImageIO.write(image, formatName, response.getOutputStream())在回复中发送图片。

答案 2 :(得分:1)

另一种解决方案是对一些命令行实用程序执行某些系统调用,例如非java imagemagick和链接输出生成的文件。

答案 3 :(得分:1)

另请参阅Loading large images as thumbnails without memory issues in Java?以获得有关使用javax.imagio.ImageReader以最小内存开销创建缩略图的良好答案。