이미지 게시판 개발할 때 썸네일을 생성해야 하는 경우가 있습니다.
이미지 비율을 유지하면서 축소하는 방법을 PHP 소스를 통해서 알아보겠습니다.
우선 이미지가 가로형인지 세로형인지에 따라서 크기가 큰 값을 기준으로 비율에 맞게 축소하는 방법입니다. 소스상에서는 가로와 세로의 최대값이 있고, 최대값보다 클 경우에만 축소시키고 작을 경우에는 원본 이미지를 그대로 사용합니다.
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 | <? define('__Limit_Width',300); // 원하는 가로길기 limit값 define('__Limit_Height',200); // 원하는 세로길기 limit값 // $img는 이미지의 경로(예:./images/phplove.gif) $imgsize = getimagesize($img); if($imgsize[0]>__Limit_Width || $imgsize[1]>__Limit_Height) { // 가로길이가 가로limit값보다 크거나 세로길이가 세로limit보다 클경우 if($imgsize[0]<$imgsize[1]) { // 가로가 세로보다 클경우 $sumw = (100*__Limit_Height)/$imgsize[1]; $img_width = ceil(($imgsize[0]*$sumw)/100); $img_height = __Limit_Height; } else { // 세로가 가로보다 클경우 $sumh = (100*__Limit_Width)/$imgsize[0]; $img_height = ceil(($imgsize[1]*$sumh)/100); $img_width = __Limit_Width; } } else { // limit보다 크지 않는 경우는 원본 사이즈 그대로..... $img_width = $imgsize[0]; $img_height = $imgsize[1]; } ?> <img src='$img' border='0' width='$img_width' height='$img_height'> | cs |
구글에서 검색해보면 더 좋은 소스들이 많이 있을 수 있습니다. 저도 어디서 가져온 소스인데 개인 보관용으로 작성하였으나 필요한 분들에게 공유하는 것도 좋을 것 같아 공개로 포스팅 합니다.
댓글