【问题标题】:Resize images on server for various devices为各种设备调整服务器上的图像大小
【发布时间】:2016-05-20 02:32:54
【问题描述】:
我正在寻找解决最常见的图像大小调整问题。我有一个 Java Web 应用程序,其中用户上传了大约 2 MB 的高质量图像,并且该图像可以从多个客户端访问,包括移动应用程序、移动站点和 Web 应用程序(例如:任何电子商务应用程序都有缩略图、小尺寸、大尺寸相同的图像)。此图像应在上传时调整大小并存储在服务器上。
我想将此上传的图片调整为多个较小尺寸的图片,供上述客户使用。是否有任何可以自动调整图像大小的开源或商业库。
只是想知道这些电子商务应用程序将如何做到这一点?
【问题讨论】:
标签:
java
image
image-processing
e-commerce
【解决方案1】:
有很多 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());