티스토리 뷰

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

PHP getimagesize() 이미지 사이즈 구하기

PHP getimagesize() 이미지 사이즈 구하기

PHP getimagesize() 이미지 사이즈 구하기



이미지 사이즈  구하는 모듈을 사용하기 위해서는 GD 라이브러리가 필요합니다


리눅스 : gd library가 리눅스 설치


윈도우 : PHP 환경설정파일 수정 및 재시작



1 리눅스 GD설치법 및 확인


인터넷 검색을 통하여 쉽게 찾을수 있으며 설치 순서에 유의하여 설치한다. 설치후에 PHP 에서 작동이 가능해야 함으로


PHP 설치 옵션에도 신경을 써야합니다.


아래는 GD 가 설치가 되어 PHP 에서 사용이 가능한 상태를 알수 있는 이미지 캡쳐이고 PHPINFO() 함수를 통해 출력할 수 있습니다.


PHP getimagesize() 이미지 사이즈 구하기


2 윈도우 GD 사용법


윈도우 : PHP 환경설정파일 수정 및 재시작


    1) php5>ext>php_gd2.dll 이 있는지 확인하세요~


    2) 환경설정 파일 php.ini 설정


       php.ini에서 다음 소스를 수정하세요~


       ;extension=php_gd2.dll 의 주석을 다음과 같이 제거하세요~


       extension=php_gd2.dll


    3) 웹서버를 다시 실행하세요~




이제 GD 가 설치 되었다는 가정하에 getimagesize() 사용법에 대하여 설명하겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
                    $flUploadPath="../file/adv/".$row[save_file_name];                            
                    $imgSize = getimagesize($flUploadPath);
                    $imgWidth = $imgSize[0];
                    $imgHeight$imgSize[1];
 
 
                    //getimagesize​ 함수의 배열 타입
 
                    //[0] = 넓이값 정수
 
                    //[1] = 높이값 정수
 
                    //[2] = 이미지타입. It is an integer data type.
 
?>
cs


$flUploadPath 변수에 해당 이미지의 url (상대경로나 절대경로 모두 가능) 으로 지정하여 getimagesize 함수를 실행하게 되면


$imgSize 변수에 배열로 해당 이미지의 정보가 저장되어 이를 이용하여 이미지 사이즈를 처리할 수 있게 된다.



이와 같은 함수를 좀더 쉽게 함수화 하여 사용한 예제를 보자


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
<?php
 
 
function img_resize_only($path$img$maxwidth$maxheight) {
    if($img) {
        // $img는 이미지의 경로(예:./images/phplove.gif) 
        $imgsize = getimagesize($path.$img); 
        if($imgsize[0]>$maxwidth || $imgsize[1]>$maxheight) { 
            // 가로길이가 가로limit값보다 크거나 세로길이가 세로limit보다 클경우                      
            $sumw = (100*$maxheight)/$imgsize[1]; 
            $sumh = (100*$maxwidth)/$imgsize[0]; 
            if($sumw < $sumh) { 
            // 가로가 세로보다 클경우 
            $img_width = ceil(($imgsize[0]*$sumw)/100); 
            $img_height = $maxheight
            } else { 
            // 세로가 가로보다 클경우 
            $img_height = ceil(($imgsize[1]*$sumh)/100); 
            $img_width = $maxwidth
            } 
        } else { 
            // limit보다 크지 않는 경우는 원본 사이즈 그대로..... 
            $img_width = $imgsize[0]; 
            $img_height = $imgsize[1]; 
        } 
        
        $imgsize[0= $img_width;
        $imgsize[1= $img_height;
    } else {
        $imgsize[0= $maxwidth;
        $imgsize[1= $maxheight;
    }
    return $imgsize;
}
 
?>
cs


이처럼 좀더 쉽게 가로 새로 사이즈를 정해서 비율에 맞게 가로 새로 사이즈를 조정하여 화면에 출력해줄 수 있게 된다.

댓글