2012-10-25 6 views
0

두 이미지가 있습니다. 하나는 회전 된 폴라로이드 프레임 polaroid.jpg의 jpg 이미지입니다. 다른 하나는 보통 이미지 image.jpg입니다.배경 이미지 위에 이미지 회전

이미지를 회전시킨 다음 폴라로이드 이미지 위에 놓고 병합 된 이미지를 하나의 JPG 이미지로 표시하려고합니다.

나는 다음 코드와 매우 흡사하다고 생각하지만 투명성을 유지할 수는 없다. 회전 된 이미지의 숨겨진 영역은 투명 대신 검정색입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 상단 이미지에 대해 투명한 배경을 얻는 것과 관련있는 행에 주석을 추가했습니다.

$bg_src = "polaroid.jpg"; 

$img_src = "image.jpg"; 

$outputImage = imagecreatefromjpeg($bg_src); 

$img = imagecreatefromjpeg($img_src); 

// This should create transparent background. 
$bgd_color = imagecolorallocatealpha($img, 0, 0, 0, 127); 

// This should assign the transparent background to the uncovered zone after rotation 
$img = imagerotate($img, 10, $bgd_color); 

// This should make sure the alpha transparency gets saved 
imagesavealpha($img, true); 

$img_x = imagesx($img); 

$img_y = imagesy($img); 

imagecopymerge($outputImage,$img,156,50,0,0,$img_x,$img_y,100); 

header('Content-type: image/jpeg'); 

imagejpeg($outputImage); 

imagedestroy($outputImage); 

답변

1

일부 하이브 검색을 시도한 후에 나타납니다. 진짜 단순한 것으로 밝혀졌습니다. 이것에

imagesavealpha($img, true); 

:

imagecolortransparent($img,$bgd_color); 

야호 난 그냥이 줄을 변경! :)

관련 문제