관리 메뉴

웹개발자의 기지개

[PHP] 이미지 리사이징하기 본문

PHP

[PHP] 이미지 리사이징하기

http://portfolio.wonpaper.net 2020. 12. 23. 05:24

폭이 1000픽셀이상의 아주 큰 이미지가 업로드 되었을 경우, 웹사이트 일반 페이지 화면상에서 그대로 노출해버리면, 화면이 어색해진다.

 

이때, 이미지 리사이징 기능을 이용하여, 내가 원하는 화면 크기를 지정하여 이미지 비율이 흐뜨러지지 않게 하여 이쁘게 나오도록 만들어 줄 수 있다.

 

우천 이미지 리사이징해 주는 함수를 만들자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
  function wbbs_getImageSize($image_path,$width_max,$height_max){
    $img_size=GetImageSize ("$image_path");
 
    if ($img_size[0> $width_max || $img_size[1> $height_max) {
      $width = $width_max;
      $height = $img_size[1]*$width_max /$img_size[0];
 
      if ($height > $height_max) {
        $height = $height_max;
        $width = $img_size[0]*$height_max /$img_size[1];
      }
    }else{
        $width = $img_size[0];
        $height = $img_size[1];
    }
    $img_size[width]  = $width;
    $img_size[height] = $height;
 
    return $img_size;
  }
?>
cs

 

$img_size[width] 와 $img_size[height] 이런식으로 배열형태로 리턴된다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
        if (($filename1&& (strtoupper(substr($filename1,-3)) == "GIF" || strtoupper(substr($filename1,-3)) == "JPG"  || strtoupper(substr($filename1,-3)) == "PNG")) {
 
                 $filename1Val = $filename1;
 
                                $size = GetImageSize("../pds/qna_photo/$filename1Val");
                                $width2  = $size[0];
                                $height2 = $size[1];
 
                $img_size = wbbs_getImageSize("../pds/qna_photo/".$filename1Val,800,600);
?>        
            <a href="javascript:open_type1('../inc/img_view.php?dir=qna_photo&img=<?=$filename1Val?>','qna_photo','<?=$width2?>','<?=$height2?>');"><img src="../pds/qna_photo/<?=$filename1Val?>" width="<?=$img_size[width]?>" height="<?=$img_size[height]?>" border=0></a>
<?
        }
 
?>
 
<script>
function open_type1(url,name,width,height){ 
    window.open(url,name,'toolbar=no, location=no, directories=no, status=no, menubar=no, resizable=no,top=200,left=300,scrollbars=yes,width='+width+',height='+height); 
</script>
cs

javascript 의 open_type1 함수는 실제 이미지를 원본이미지 그대로 상세보기 위하여 팝업형태로 볼여준다.

 

[img_view.php]  - 실제 큰 이미지 상세페이지

 

 

1
2
3
4
5
6
7
8
9
10
11
12
<?
$img = $_GET[img];
?>
<html>
<head>
<title>이미지보기</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body topmargin='0'  leftmargin='0' marginwidth='0' marginheight='0'>
<a href='#' onclick="window.close()"><img src="../pds/<?=$_GET[dir]?>/<?=$img?>" border=0></a>
</body>
</html>
cs

 

Comments