하은양 믿음군 효실맘 호홍홍집s

화질 좋은 썸네일 이미지 만들기 본문

가벼운 배움/jsp

화질 좋은 썸네일 이미지 만들기

호홍홍집 2016. 3. 16. 13:40

참조 : http://direction.tistory.com/52

우선 아래와같은 jar 파일이 있어야한다.

 filters-2.0.235.jarjava-image-scaling-0.8.6.jar

 

File upFile = util.getFile(sSavePath,p_img_org);
            item.write(upFile);
            p_img_real = upFile.getName();

            // 썸네일 이미지 만들기...
            BufferedImage bimgSrc = null;
            try {
              bimgSrc = ImageIO.read(upFile);
              if(bimgSrc != null && !p_img_real.equals("")){
                int imgX = bimgSrc.getWidth();
                int imgY = bimgSrc.getHeight();
                int fixWidth = 180;
                double dCvtHeight = 0;

                if(imgX > 0 && imgY > 0){
                  p_img_thumb = "thm"+p_img_real;
                  dCvtHeight = ((double)fixWidth * (double)imgY) / (double)imgX;
                  boolean chkSaveThumb = util.getThumbnail(bimgSrc,sSavePath,p_img_thumb,"jpg",fixWidth,(int)dCvtHeight);
                  if(!chkSaveThumb) p_img_thumb = "";
                }
              }
            } catch (IOException e) {
              System.out.println("thumnail Image fail : " + e.getMessage());
            }

           // 함수부분..
           public boolean getThumbnail(BufferedImage srcImage, String destPath, String destFileName, String imageFormat, int destWidth, int destHeight){
        boolean rtnResult = true;
        try{

            ResampleOp rO = new ResampleOp(destWidth, destHeight);
            rO.setUnsharpenMask(AdvancedResizeOp.UnsharpenMask.Soft);
            BufferedImage rImage = rO.filter(srcImage,null);

            File destFile = new File(destPath + destFileName);
            ImageIO.write(rImage, imageFormat, destFile);

        }catch (IOException e){
            System.out.println("Improved Image Scaliig Faild : "+e.toString());
            rtnResult = false;
        }
        return rtnResult;
    }