작성일 댓글 남기기

imageMagick을 이용한 리사이징 & Crop




thumbnail을 만들때 각기 좌우 크기가 다른 사진들때문에 홈페이지 레이아웃이 엉망이 되는 경우가 많아서 사진크기와 상관없이 일정한 가로세로를 가진 thumbnail을 생성하기 위해서 만들었습니다.

원리는 간단합니다.
원본사진의 크기를 측정해서 가로세로중 크기가 작은 쪽이 원하는 사이즈가 되게 리사이즈하면서 중앙을 중심으로 가로세로가 같은 크기가 되게 잘라내는 방식입니다.

당근 imagemagick이 깔려있어야 작동하겠지요?
http://imagemagick.org/script/download.php 참조…

[code]
function crop_thumb($jpg1,$jpg2,$width=150) {
    $path=”/usr/local/bin/”; //imagemagick 실행 경로
      if (!$jpg1||!$jpg2) return;
      $size=@getimagesize($jpg1);     
      if (!$size) return;
      if ($size[0]>=$size[1]) {
              $size[0]=intval($size[0]*$width/$size[1]);
              $size[1]=$width;
      }
      else if ($size[0]<$size[1]) {
              $size[1]=intval($size[1]*$width/$size[0]);
              $size[0]=$width;
      }

              $x=(int)(($size[0]/2)-($width/2));
              $y=(int)(($size[1]/2)-($width/2));
              if ($x<0) $x=0;
              if ($y<0) $y=0;

        $str = “nice -10 “.$path.”convert -compress JPEG -quality 100 -resize $size[0]”.”x$size[1] -crop $width”.”x”.”$width+$x+$y \”$jpg1\” \”$jpg2\””;
      exec($str);

[/code]

답글 남기기

이메일 주소는 공개되지 않습니다.