본문 바로가기
JAVA/JSP, JSTL, EL

스터디 이미지파일 리사이즈 과제

by 설총이 2018. 7. 12.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
 
public class FileEx {
 
    public static void main(String[] args) {
 
        String img= "d://images/image.jpg"// 원본 이미지 파일명 img 에 저장
        String newimg= "d://images/thumbs/image_thumb.jpg";// 새 이미지 파일명 저장
        String imgFormat = "jpg";  // 새 이미지 포맷. jpg, gif 등 // 꼭해야하는건가?
        int newWidth = 100// 변경 할 넓이
        int newHeight = 50;  // 변경 할 높이
        Image image;
         
        try{
            // 원본 이미지 가져오는 예약어.
            image = ImageIO.read(new File(img));
 
            
             // 이미지 리사이즈
            // Image.SCALE_DEFAULT : 기본 이미지 스케일링 알고리즘 사용
            // Image.SCALE_FAST    : 이미지 부드러움보다 속도 우선
            // Image.SCALE_REPLICATE : ReplicateScaleFilter 클래스로 구체화 된 이미지 크기 조절 알고리즘
            // Image.SCALE_SMOOTH  : 속도보다 이미지 부드러움을 우선
            // Image.SCALE_AREA_AVERAGING  : 평균 알고리즘 사용
           
            
            //getScaledInstance라는 메서드에는 매개변수가 3개의 값이 들어가야한다.
            //1.width / 2.height / 3.이미지 리사이즈를 위한 예약어인듯함.
            Image resizeImage = image.getScaledInstance(newWidth,newHeight,Image.SCALE_SMOOTH);
 
            
            
            // 새 이미지  저장하기
            BufferedImage newImage = new BufferedImage(newWidth,newHeight, BufferedImage.TYPE_INT_RGB);
            Graphics g = newImage.getGraphics();
            g.drawImage(resizeImage, 00null);
            g.dispose();
            ImageIO.write(newImage, imgFormat, new File(newimg));
            
            //뭐하는 문장인지 모르겠다... 그래픽중에서 rgb값을 바꾸는듯한데
            //삭제하면 생성이 안됨.
 
        }catch (Exception e){
 
            e.printStackTrace();
 
        }
 
    }
 
}
        
cs