2013-03-27 128 views
2

我在我的一個項目中使用JCrop(用戶已裁剪自己的臉)和&源圖像發送座標的PHP處理程序。該流程應該如下:基於座標接收處理裁剪圖像和使用imagecopy()把新創建的圖像(90x90在我的情況),在與ImageCreateTrueColor()創建一個空的佈局。這工作得很好,但下一步是:我必須加載一個透明部分的PNG圖像。 (我希望我解釋不夠清楚),它具有相同的寬度和高度爲以前的佈局誰擁有它的croped區域。最後一步是再次使用imagecopy()把PNG在佈局和具有作爲最終結果的模板,由用戶做出的作物覆蓋的透明部分。這裏是我的代碼:PHP-GD巴透明圖像變黑

$targ_w = $targ_h = 90; 
$jpeg_quality = 100; 
$src = $_POST['s']; 
$img_r = imagecreatefromjpeg($src); 
$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']); 
$layout = ImageCreateTrueColor(459,683); 
imagecopy($layout, $dst_r, 263, 249, 0, 0, 90, 90); 
$template = 'template.png'; 
$src_r = imagecreatefrompng($template); 
$background = imagecolorallocate($src_r, 255, 255, 255); 
imagecolortransparent($src_r, $background); 
imagealphablending($src_r, false); 
imagesavealpha($src_r, true); 
imagecopy($layout, $src_r, 0, 0, 0, 0, 459, 683); 
header('Content-type: image/png'); 
imagepng($src_r); 

我已經嘗試了許多事情在網上找到,似乎沒有任何工作。 編輯:問題是,透明部分是黑色的,而不是在那裏所剪切的臉部。我真的需要一些建議。先謝謝你。

+1

你禁用alpha混合在$ src_r任何理由嗎? – 2013-03-27 15:46:59

+0

我已經嘗試過與alpha混合真正的,仍然無法正常工作。 – 2013-03-27 15:51:27

回答