2010-07-16 4 views
4

사진을 추가/편집 할 수있는 소셜 네트워킹 프로젝트를 진행하고 있습니다. 사용자가 버튼을 클릭하면 이미지가 데이터베이스에 업로드되어 업데이트됩니다. 이전에 이미지를자를 수 있습니까? 데이터베이스에 저장됩니다.업로드하는 동안 이미지를 잘라내는 방법은 무엇입니까?

+0

당신은 당신이를 사용하여 이미지의 복사본을 만들 수있는 파일을 저장하기 전에 서버 측을 자르려면 : 원하는 크기를 호출 GD 이미지 라이브러리 http://www.php.net/manual/en/book.image.php 자르기를 수행 할 함수는 http://www.php.net/manual/en/function.imagecopyresampled.php – Luke

답변

5

단순히이 기능 ..with의 PARAM 소스, 목적지 및 유

function cropImage($source,$dest,$whsize) { 

       $size = getimagesize($source); 
       $w = $size[0]; 
       $h = $size[1]; 
       $xratio=$w/$whsize; 
       $yratio=$h/$whsize; 

       if($xratio > $yratio)$multiplier=$xratio; 
       else $multiplier=$yratio; 

       $nw=$w/$multiplier; 
       $nh=$h/$multiplier; 
       switch($size[2]) { 
        case '1': 
        $simg = imagecreatefromgif($source); 
        break; 
        case '2': 
        $simg = imagecreatefromjpeg($source); 
        break; 
        case '3': 
        $simg = imagecreatefrompng($source); 
        break; 
       } 

       $dimg = imagecreatetruecolor($nw, $nh); 

       $wm = $w/$nw; 
       $hm = $h/$nh; 

       $h_height = $nh/2; 
       $w_height = $nw/2; 

       if($w> $h) { 

        $adjusted_width = $w/$hm; 
        $half_width = $adjusted_width/2; 
        $int_width = $half_width - $w_height; 

        imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h); 

       } elseif(($w <$h) || ($w == $h)) { 

        $adjusted_height = $h/$wm; 
        $half_height = $adjusted_height/2; 
        $int_height = $half_height - $h_height; 

        imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h); 

       } else { 
        imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h); 
       } 
      $dest=$dest.'jpeg'; 
       imagejpeg($dimg,$dest,100); 
     }  
+0

입니다. 이 방법으로 이미지가 자릅니다. – PHP

+0

이미지를 자르지 않고 크기를 조정하는 것입니다. – mack

1

확실히 업로드 디렉토리와 어딘가에 임시 디렉토리에 파일을 이동하고 해당 위치를 세션에 저장 한 다음 제작 영역으로 이동하기 전에 잘라내어 자르도록하십시오 데이터베이스에 저장합니다.

관련 문제