我有两张图片。一个是旋转的宝丽来框架的 jpg 图像polaroid.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);