これを行うための多くの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());