일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리눅스
- java8
- generate entity
- java9
- MySQL
- 도커
- SpringBoot
- generate pojos
- 초기 세팅
- docker 설치
- JavaScript
- 초기 구축
- spring
- swagger
- 헤더 설정
- CentOS6
- ollama langflow
- spring boot
- header setting
- jpa entity자동
- custom valid
- Next.js 14
- docker
- React
- jvm
- NextJS
- Java
- memcached
- dto valid
- JPA
- Today
- Total
개발자의 길
[java] 원본 이미지 가지고 썸네일 생성[BufferedImage] 본문
원본 이미지의 파일 경로를 가지고,
썸네일을 따로 저장하는 기능과, 저장없이 썸네일을 만들어서 뿌려주는 기능이다.
/**
* make jang.jae
* imgUrl = 파일 경로
* w = 변경할 width, 없을경우 원본 사이즈
* h = 변경할 height, 없을경우 원본 사이즈
* outPath = 값이 있으면 해당 경로에 저장, 없으면 호출한 영역에 이미지 노출
*/
public void imgOnload(String imgUrl, String w, String h, String outPath, HttpServletResponse response) throws Exception{
int extIndex = imgUrl.lastIndexOf(".");
String fileExt = imgUrl.substring(extIndex+1);
BufferedImage sourceImage= ImageIO.read(new File(imgUrl));
int width = sourceImage.getWidth();
int height = sourceImage.getHeight();
int param_w=0;
int param_h=0;
if(w==null){
param_w=width;
}else{
param_w=Integer.parseInt(w);
}
if(h==null){
param_h=height;
}else{
param_h=Integer.parseInt(h);
}
byte[] buffer = null;
BufferedImage img = new BufferedImage(param_w, param_h, BufferedImage.TYPE_INT_RGB);
Image scaledImage = sourceImage.getScaledInstance(param_w,param_h, Image.SCALE_SMOOTH);
img.createGraphics().drawImage(scaledImage, 0, 0, null);
BufferedImage img2 = new BufferedImage(param_w, param_h ,BufferedImage.TYPE_INT_RGB);
img2 = img.getSubimage(0, 0, param_w, param_h);
if(outPath !=null){
OutputStream os =new FileOutputStream(outPath);
ImageIO.write(img2, fileExt, os);
os.close();
}else{
OutputStream os =response.getOutputStream();
ImageIO.write(img2, fileExt, os);
os.close();
}
}
'4. JAVA' 카테고리의 다른 글
spring security 파헤치기 (구조, 인증과정, 설정, 핸들러 및 암호화 예제, @Secured, @AuthenticationPrincipal, taglib) (0) | 2019.04.10 |
---|---|
[javascript/java] spring/jsp-javascript(server/client) websocket 통신 예제 (0) | 2018.01.12 |
[Java] 스트림과 병렬처리 - 필터링, 매핑, 정렬 (0) | 2017.04.21 |
[java8] Collections (0) | 2017.02.13 |
[java date] 자바 날짜 시간 계산 예제 (1) | 2017.02.10 |
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.