Notice
Recent Posts
Recent Comments
Link
투케이2K
53. (spring/스프링) BufferedImage 사용해 http 이미지 주소 링크 사진 정보 data url 로 변경 실시 본문
Spring
53. (spring/스프링) BufferedImage 사용해 http 이미지 주소 링크 사진 정보 data url 로 변경 실시
투케이2K 2022. 6. 28. 12:51[개발 환경 설정]
개발 툴 : inteli j
개발 언어 : spring
[소스 코드]
@GetMapping("/userImageData")
public String userImageData(@RequestParam Map<String, String> param){
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("userImageData"));
System.out.println("[INPUT] : "+String.valueOf(param.toString()));
System.out.println("================================================");
System.out.println("\n");
/**
* // -----------------------------------------
* [호출 방법]
* // -----------------------------------------
* 1. 호출 방식 : GET
* // -----------------------------------------
* 2. 호출 방법 : http://localhost:7000/userImageData
* // -----------------------------------------
* 3. 리턴 데이터 : html 이미지 태그에 표시할 data url
* // -----------------------------------------
* */
// [리턴 반환 변수 선언 실시]
String dataUrlString = "";
// [get 방식 http 요청 수행 주소]
String url = "https://i.pravatar.cc/150?img=3";
//String url = "http://img.championat.com/news/big/l/c/ujejn-runi_1439911080563855663.jpg";
// [사진 정보를 담기 위한 BufferedImage 선언]
BufferedImage image = null;
// [http 요청 실시]
try {
// TODO [http 주소가 .jpg 또는 이미지 명칭으로 종료하는 경우]
// String url = "http://img.championat.com/news/big/l/c/ujejn-runi_1439911080563855663.jpg";
// [URL 객체 사용해서 주소 지정 실시]
URL imageUrl = new URL(url);
// [BufferdImage 에 사진 정보 담기]
image = ImageIO.read(imageUrl);
}
catch (Exception e) {
//e.printStackTrace();
// TODO [http link 로 종료 하는 경우]
//String url = "https://i.pravatar.cc/150?img=3";
try {
// [URL 객체 사용해서 주소 지정 실시]
URL imageUrl = new URL(url);
// [http url 커넥션 설정 실시]
HttpURLConnection connection = (HttpURLConnection) imageUrl.openConnection();
connection.setRequestProperty(
"User-Agent",
"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0"
);
// [BufferdImage 에 사진 정보 담기]
image = ImageIO.read(connection.getInputStream());
}
catch (Exception error){
error.printStackTrace();
}
}
// [로그 출력 실시]
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("userImageData"));
System.out.println("[BufferedImage] : "+String.valueOf(image));
System.out.println("================================================");
System.out.println("\n");
// [BufferedImage 가 null 이 아닌 경우 로직 처리]
if (image != null){
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
String base64String = DatatypeConverter.printBase64Binary(baos.toByteArray());
dataUrlString = "data:image/png;base64," + base64String;
}
catch (Exception e){
e.printStackTrace();
}
}
// [로그 출력 실시]
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("userImageData"));
System.out.println("[RETURN] : "+String.valueOf(dataUrlString));
System.out.println("================================================");
System.out.println("\n");
// [Api 리턴 반환]
return dataUrlString;
}
[결과 출력]
반응형
'Spring' 카테고리의 다른 글
Comments