반응형
// File file = new File(fileImagePath); // 리사이즈할 파일 정보
public BufferedImage resize(File file, int width, int height) throws IOException {
/** 이미지 가져오기 **/
InputStream inputStream = new FileInputStream(file);
/** 받은 이미지 읽기 **/
BufferedImage inputImage = ImageIO.read(inputStream);
/** 리사이징 **/
BufferedImage outputImage = new BufferedImage(width, height, inputImage.getType());
Graphics2D graphics2D = outputImage.createGraphics();
graphics2D.drawImage(inputImage, 0, 0, width, height, null); // 그리기
graphics2D.dispose(); // 자원해제
return outputImage;
}
리사이징
public void drawBlackBox(BufferedImage blackBoxImage, int blackBoxWidth, int blackBoxHeight, HttpSession session) {
int cutXPoint = 10; // 왼쪽 상단 X좌표
int cutYPoint = 10; // 왼쪽 상단 Y좌표
/** 도형 그리기 **/
Graphics graphics = blackBoxImage.getGraphics();
graphics.setColor(Color.BLACK); // 색상 설정
graphics.fillRect(cutXPoint, cutYPoint, blackBoxWidth, blackBoxHeight); // 채우기 사각형
// graphics.drawRect(cutXPoint, cutYPoint, blackBoxWidth, blackBoxHeight); // 테두리 사각형
// graphics.fillOval(xPoint, yPoint, ovalWidth, ovalHeight); // 채우기 원
// graphics.drawOval(xPoint, yPoint, ovalWidth, ovalHeight); // 테두리 원
graphics.dispose();
}
도형 그리기
public BufferedImage getWhitePaper(StringImageVO customImage) {
// 종이 크기 설정
int width = customImage.getImageWidth();
int height = customImage.getImageHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
// 예시
// BufferedImage mergedImage = new BufferedImage(550, 100, BufferedImage.TYPE_INT_RGB);
return image;
}
하얀 배경 그리기
public void draw(BufferedImage image, String question) {
Color color = new Color(255, 0, 0); // 글자 색
Font font = new Font("TimeRoman", Font.PLAIN, 35); // 이미지 글체
// 글자 이미지가 생성될 위치 선정
int left = 240;
int top = 300;
// Graphics2D 와 BufferedImage는 연동 된 느낌?
Graphics2D graphics = image.createGraphics();
// 글자색과 글자체 설정
graphics.setColor(color);
graphics.setFont(font);
// 해당 내용으로 그리기 작업
graphics.drawString(question, left, top);
graphics.dispose();
}
글자 그리기
public void getQuestionList(
HttpServletRequest request, HttpServletResponse response) throws IOException {
/** 화면 준비 **/
OutputStream out = response.getOutputStream();
/** 준비된 이미지 **/
BufferedImage img = new BufferedImage(550, 100, BufferedImage.TYPE_INT_RGB);
/** 화면에 뿌리기 **/
response.setContentType("image/png");
ImageIO.write(img, "png", out);
}
화면에 노출시키기
BufferedImage cutImage = resizedImage.getSubimage(cutXPoint, cutYPoint, cutWidth, cutHeight); // 잘린 이미지
이미지 자르기
반응형
'[Java] > [Java Code]' 카테고리의 다른 글
[Java Code] QR코드 생성 (0) | 2022.05.22 |
---|---|
[Java Code] 이클립스 내 저장된 이미지 경로 가져오기 (0) | 2022.05.22 |
[Java Code] Referer 체크 (0) | 2022.05.22 |
[Java Code] 이미지, 문서, 영상 보내기 (0) | 2022.04.30 |
[Java Code] List, Map, JSONArray 문자 및 숫자 정렬 (오름차순, 내림차순) (0) | 2022.04.23 |