为各种设备调整服务器上的图像大小

时间:2016-05-16 18:06:45

标签: java image image-processing e-commerce

我正在寻找解决最常见的图像重新调整大小的问题。我有一个Java Web应用程序,用户上传大约2 MB的高质量图像,这个图像可以从多个客户端访问,包括移动应用程序,移动网站和Web应用程序(例如:任何电子商务应用程序都有缩略图,小尺寸,大尺寸的相同的图像)。此图像应在上传时调整大小,并存储在服务器上。

我想将上传的图片调整为上面提到的客户端的多个较小尺寸的图片。是否有任何开源或商业库可以自动调整图像大小。

只是想知道这些电子商务应用程序将如何做到这一点?

1 个答案:

答案 0 :(得分:2)

有许多Java图像处理框架可以做到这一点。

下面的代码使用Marvin Framework使用宽度作为参考将图像调整为不同的分辨率。计算高度以保持比例:

MarvinImage image = new MarvinImage(uploadedImage);
String fileName = "myfilename.jpg";
MarvinImage scaled = new MarvinImage(1,1)

scale(image, scaled, 1000); // width == 1000
MarvinImageIO.saveImage(scaled, new File(URI.create("file:///server_storage/"+FilenameUtils.removeExtension(fileName)+"_w1000.jpg")).getAbsolutePath());
scale(image, scaled, 500); // width == 500
MarvinImageIO.saveImage(scaled, new File(URI.create("file:///server_storage/"+FilenameUtils.removeExtension(fileName)+"_w500.jpg")).getAbsolutePath());
scale(image, scaled, 250); // width = 250
MarvinImageIO.saveImage(scaled, new File(URI.create("file:///server_storage/"+FilenameUtils.removeExtension(fileName)+"_w250.jpg")).getAbsolutePath());