팡이네

이미지 크기 조절

/**
 * 사진 이미지 크기 조절
 * @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