经过多次尝试和错误以及咬牙切齿,我终于弄清楚了如何将具有 8 位 alpha 的 png 合成到 jpg 上。这对我来说并不明显,所以我认为我应该分享一下。希望有帮助。
我正在使用它来创建带边框的缩略图图像
<?php
$frame = imagecreatefrompng('path/to/frame.png');
$thumb = imagecreatefromjpeg('path/to/thumbnail.jpg');
$width = imagesx( $frame );
$height = imagesy( $frame );
$img=imagecreatetruecolor( $width, $height );
imagealphablending($img, true);
$transparent = imagecolorallocatealpha( $img, 0, 0, 0, 127 );
imagefill( $img, 0, 0, $transparent );
imagecopyresampled($img,$thumb,32,30,0,0, 130, 100, imagesx( $thumb ), imagesy( $thumb ) );
imagecopyresampled($img,$frame,0,0,0,0, $width,$height,$width,$height);
imagealphablending($img, false);
imagesavealpha($img,true);
header('Content-type: image/png');
imagepng( $img );
imagedestroy($img);
exit;
?>