사진 이미지 크기 변경 후 Base64 문자열 변환
Java2018. 4. 26. 10:49
이미지 크기 조절
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /** * 사진 이미지 크기 조절 * @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 문자열 변환
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 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 |