2012-09-19 202 views
0

我正在使用jCrop裁剪圖像。這段代碼之前在另一個頁面中工作,但是當我爲不同的頁面實現它時,它似乎在起作用。在PHP中裁剪圖像imagecopyresampled - 壓扁而不是裁剪

當我運行這個時,代碼拍攝了原始圖像,壓扁它,然後將整個圖像放入我打算修剪的盒子中。

這些值正確地從jCrop中返回$ _POST值。

$origURL=$_POST['CelebrityPicURL']; 
$x = $_POST['x']; 
$y = $_POST['y']; 
$w = $_POST['w']; 
$h = $_POST['h']; 

$targ_w = $targ_h = 300; 
$jpeg_quality = 90; 

$img_r = imagecreatefromjpeg($origURL); 
$dst_r = ImageCreateTrueColor($targ_w, $targ_h); 

imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'], 
$targ_w,$targ_h,$_POST['w'],$_POST['h']); 


imagejpeg($dst_r,$origURL,$jpeg_quality); 

回答

0

您可以簡單地使用imagecopy()。就像...

$dst_r = imagecreatetruecolor((int) $w, (int) $h); 
imagecopy($dst_r, $img_r, 0, 0, (int) $x, (int) $y, (int) $w, (int) $h); 

當然,你也想檢查越界條件並適當地處理它們。不知道你爲什麼設置和/或使用$targ_w$targ_h如果你從$_POST陣列中裁剪數據。