Я пытаюсь сохранить фактическое, стандартное и уменьшенное изображение (все разных размеров) в моей файловой системе. Я могу сделать это с одним изображением с этим кодом:
Set<ProductImage> productImages = new HashSet<>();
for (MultipartFile multipartFile : images) {
ProductImage productImage = new ProductImage();
productImage.setSize(multipartFile.getSize());
productImage.setExtension(multipartFile.getContentType());
productImage.setActualImageName(new Date().getTime() + multipartFile.getOriginalFilename());
productImage.setStandardImageName("stand_"+ new Date().getTime() +multipartFile.getOriginalFilename());
productImage.setNameAtFilestore(slg.slugify(productImage.getActualImageName()));
productImage.setThumbnailImageName("thumb_"+ new Date().getTime() + multipartFile.getOriginalFilename());
productImage.setProduct(product);
productImages.add(productImage);
File imageFile = new File(directory + "/" + productImage.getActualImageName());
imageFile.setReadable(true, false);
imageFile.createNewFile();
try {
multipartFile.transferTo(imageFile);
BufferedImage originalImage= ImageIO.read(imageFile);
int type = originalImage.getType() == 0? BufferedImage.TYPE_INT_ARGB : originalImage.getType();
BufferedImage resizedImage = new BufferedImage(500, 500, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, 500, 500, null);
g.dispose();
ImageIO.write(resizedImage, "jpg", new File(directory + "/" + productImage.getStandardImageName()));
} catch (IOException e) {
e.printStackTrace();
}
File thumbFile = new File(directory + "/" + productImage.getThumbnailImageName());
thumbFile.setReadable(true, false);
thumbFile.createNewFile();
try {
Thumbnails.of(directory + "/" + productImage.getActualImageName())
.size(200, 200).keepAspectRatio(false)
.toFile(thumbFile);
} catch (IOException e) {
e.printStackTrace();
}
}
productImages.addAll(product.getProductImages());
product.setProductImages(productImages);
Проблема в том, что когда я загружаю, например, два изображения, сохраняются три размера одного изображения, но только фактические и миниатюры для другого. Я новичок в этом, поэтому не мог найти способ обойти это. Я также использую спящий режим.