사진 이미지 크기 변경 후 Base64 문자열 변환
Java2018. 4. 26. 10:49
이미지 크기 조절
/** * 사진 이미지 크기 조절 * @param img * @param width * @param height * @return */ private BufferedImage resizeImage(BufferedImage img, int width, int height) { //int type = img.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : img.getType(); //png = TYPE_INT_ARGB Image tmp = img.getScaledInstance(width, height, Image.SCALE_SMOOTH); BufferedImage resized = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //jpeg = TYPE_INT_RGB Graphics2D g2d = resized.createGraphics(); g2d.drawImage(tmp, 0, 0, null); g2d.dispose(); return resized; }
사진 이미지 Base 64 문자열 변환
private String resizePhoto(String filePath, int MAX_SIZE) { try { ByteArrayOutputStream os = new ByteArrayOutputStream(); //업로드 된 이미지(원본) 파일 읽기 File file = new File(filePath); BufferedImage orgImage = ImageIO.read(file); BufferedImage resizedImage = null; int imageWidth = orgImage.getWidth(); int imageHeight = orgImage.getHeight(); //가로가 긴 이미지 if (imageWidth > imageHeight) { if (imageWidth > MAX_SIZE) { double height = (double)imageHeight / (double)imageWidth * (double)MAX_SIZE; //가로 크기 = MAX_SIZE, 세로 크기 = height resizedImage = resizeImage(orgImage, MAX_SIZE, (int)height); } //세로가 긴 이미지 } else { if (imageHeight > MAX_SIZE) { double width = (double)imageWidth / (double)imageHeight * (double)MAX_SIZE; //가로크기 = width, 세로 크기 = MAX_SIZE resizedImage = resizeImage(orgImage, (int)width, MAX_SIZE); } } //이미지 크기 변경 = resizedImage 아니면 원본 이미지 = orgImage ImageIO.write((resizedImage != null) ? resizedImage : orgImage, "jpeg", os); return Base64.getEncoder().encodeToString(os.toByteArray()); //base64 문자열 변환 } catch (FileNotFoundException ex) { System.out.println("▶▶▶ File not found in [resizePhoto] " + ex); } catch (IOException ex) { System.out.println("▶▶▶ Error in [resizePhoto] " + ex); } return null; }
'Java' 카테고리의 다른 글
날짜 관련 유틸리티 (0) | 2018.10.23 |
---|---|
JDK 8 인스톨 없이 설치하기 (0) | 2018.10.20 |
POI, Excel 셀 생성 (0) | 2015.06.30 |
POI, Excel 숫자 셀 생성 (0) | 2015.06.30 |
POI, Excel 병합 셀 생성 (0) | 2015.06.30 |