만들어가는 세상

[JAVA] 이미지 썸네일(image Thumbnail) 만들기 본문

IT/JAVA

[JAVA] 이미지 썸네일(image Thumbnail) 만들기

윤재웅 2019. 10. 24. 17:53

[JAVA] 이미지 썸네일(image Thumbnail) 만들기

썸네일을 만들어 보았습니다. 간간히 보이는 if문을 제외하면 기본적인 구조입니다.

public class ThumbAdd {

  @SuppressWarnings("deprecation")
  public ThumbAdd(String imagePatch, String imageThumbPatch) throws IOException{

      File src = new File(imagePatch);
      Image  srcImg = null;

      FileInputStream fis = new FileInputStream(imagePatch.replaceAll("/", "\\" + File.separator));
      BufferedImage im = ImageIO.read(fis);

      String suffix = src.getName().substring(src.getName().lastIndexOf('.')+1).toLowerCase();
      if (suffix.equals("bmp") || suffix.equals("png") || suffix.equals("gif")) {
          srcImg = ImageIO.read(src);
      } else {
          srcImg =  new ImageIcon(src.toURL()).getImage();
      }

      double scale = (double) 300 / (double) srcImg.getHeight(null);
      if (srcImg.getWidth(null) > srcImg.getHeight(null)) {
          scale = (double) 300 / (double) srcImg.getWidth(null);
      }

      int scaledW = (int) (scale * srcImg.getWidth(null));
      int scaledH = (int) (scale * srcImg.getHeight(null));

      BufferedImage thumb = new BufferedImage(scaledW, scaledH, BufferedImage.TYPE_INT_RGB);
      Graphics2D g2 = thumb.createGraphics();
      g2.drawImage(im, 0, 0, scaledW, scaledH, null);
      ImageIO.write(thumb, "jpg", new File(imageThumbPatch));
  }
}
Comments