1. php 裁切圖片問題 求助
PHP做圖片裁切
PHP做圖片裁剪的原理是通過前台定位出要裁剪圖片的左上角位置,及右下角位置的做標,如果有放大和縮小的話還要給出放大和縮小的百分比,以及要對哪一個圖片進行操作,這幾個值傳到後台,在用PHP去處理!
前端圖片坐標點的得到可以自己用JS去實現,如果你的JS寫的不是很熟也沒有關系,可以下載一個jsCropperUI這一個包裡面有很多的DEMO,可以實現前台的拖曳效果了!
前台會有一個AJAX向後台發送數據,一般格式為x1="+position[0]+"&y1="+position[1]+"&x2="+position[2]+"&y2="+position[3]+"&r="+position[4]+"&id = imgid四個坐標,縮放值,要操作的ID
後PHP接收這個數據後,進行操作
$x1 = $_GET['x1'];
$y1 = $_GET['y1'];
$x2 = $_GET['x2'];
$y2 = $_GET['y2'];
$r = $_GET['r'];
if($x2<$x1||$y2<$y1){
return false;
}
$img="dog.jpg";
$im=imagecreatefromjpeg($img);
$percent = $r*0.01;
list($width, $height) = getimagesize($img);
$new_width = $width * $percent;
$new_height = $height * $percent;
$tempimg = imagecreatetruecolor($new_width,$new_height);
imageresampled($tempimg, $im,0,0,0,0, $new_width,$new_height, $width, $height);
imagejpeg($tempimg,"dog_temp.jpg");
ImageDestroy ($im);
$ims=$tempimg;
$srcW=ImageSX($ims);
$srcH=ImageSY($ims);
$top_x = $x1;
$top_y = $y1;
$bottom_x = $x2;
$bottom_y = $y2;
$newimg = imagecreatetruecolor($bottom_x-$top_x,$bottom_y-$top_y);
imageresampled($newimg, $ims,0,0,$top_x,$top_y, $srcW,$srcH, $srcW, $srcH);
imagejpeg($newimg,"dogs.jpg");
ImageDestroy ($ims);
echo 1;
成功後輸出1讓前台得到進行裁剪區域的刷新!這樣就可以實現PHP裁剪圖片的效果了!