자바에서는 imageIO 클래스를 이용해 이미지를 컨트롤 할 수 있다.
multipartFile 타입 File 타입으로 캐스팅
public static File multipartFileToFile(MultipartFile file) throws IOException {
File convFile = new File(file.getOriginalFilename());
convFile.createNewFile();
FileOutputStream fos = new FileOutputStream(convFile);
fos.write(file.getBytes());
fos.close();
return convFile;
}
File beforeFile = new File(PATH + fileName + "_" + fileUploadTime + "." + fileType);
File afterFile = new File(PATH + fileName + "_" + fileUploadTime + ".jpg");
BufferedImage beforeImg = ImageIO.read(beforeFile);
read 로 생성된 file 인스턴스로부터 이미지를 읽거나 지정된 Url을 이용해 이미지를 읽어올 수 있다.
BufferedImage afterImg = new BufferedImage(beforeImg.getWidth(), beforeImg.getHeight(), BufferedImage.TYPE_INT_RGB);
읽어온 이미지로 BuffredImage를 구해서 이미지를 jpg 파일로 변환하기 위한 작업을 한다.
afterImg.createGraphics().drawImage(beforeImg, 0, 0, Color.white, null);
createGraphics() 메소드 호출로 BufferImage에 그림을 그릴 수 있게 Graphics2D 객체를 먼저 구현하고,
구현된 Graphics2D 객체를 사용해 원본 BufferdImage(beforeImg)를 변환 이미지 객체(afterImg)에 그려넣는다.
ImageIO.write(afterImg, "jpg", afterFile);
jpg로 출력