반응형

 

// 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); // 잘린 이미지

이미지 자르기

 

반응형