본문 바로가기
코딩과 알고리즘

php - 이미지 리사이즈(크기변경)

php 이미지 리사이즈

php에서 이미지 크기를 변경하는 건 빈번하게 사용되는 기술입니다.
보통 썸네일 이미지를 만들 때 많이 사용되는데요.
관련 소스들이 어중간한게 많아 새로 만들었습니다 :)

function resize_image($file, $newfile, $w, $h) {
   list($width, $height) = getimagesize($file);
   if(strpos(strtolower($file), ".jpg"))
      $src = imagecreatefromjpeg($file);
   else if(strpos(strtolower($file), ".png"))
      $src = imagecreatefrompng($file);
   else if(strpos(strtolower($file), ".gif"))
      $src = imagecreatefromgif($file);
   $dst = imagecreatetruecolor($w, $h);
   imagecopyresampled($dst, $src, 0, 0, 0, 0, $w, $h, $width, $height);
   if(strpos(strtolower($newfile), ".jpg"))
      imagejpeg($dst, $newfile);
   else if(strpos(strtolower($newfile), ".png"))
      imagepng($dst, $newfile);
   else if(strpos(strtolower($newfile), ".gif"))
      imagegif($dst, $newfile);
}

은근히 파일의 종류가 jpg인지 gif인지 png인지에 따라 처리를 각각 다르게 하기 번거로워서,
파일명에 붙는 확장자로 자동 판단하도록 적용하였습니다.

사용법은 아래와 같습니다 :) 

resize_image("원본파일명", "대상파일명", 변경될가로크기, 변경될세로크기 );

샘플 ( 200 x 100 픽셀의 이미지로 변환 )

resize_image("org/model.jpg", "new/model200.jpg", 200, 100);  // 알아서 jpg 유형의 파일 생성
resize_image("org/model.jpg", "new/model200.png", 200, 100);  // 알아서 png 유형의 파일 생성
resize_image("org/model.jpg", "new/model200.gif", 200, 100);  // 알아서 gif 유형의 파일 생성

※ 혹시나 노파심에 몇글자 더 적습니다.

이미지를 생성할 폴더는 쓰기 권한이 있어야 합니다

리눅스 셀 창이나 FTP 창에서 766 으로 권한 바꾸는걸 잊지 말아 주세요 :)

> chmod 766 new