当使用imagettftext并通过imagecolortransparent渲染透明图像时,文本的边框似乎与原始背景颜色(黑色)混合而不是透明度,从而创建如下所示的文本轮廓:
http://i.stack.imgur.com/xLSkK.png而不是使用imagestring,这里:
http://i.imgur.com/5R0gT.png
现在我不确定是否有更好的方法来组合图像,因此它们从一开始就是透明的,或者如果还有其他一些我不知道的透明方法。这是我正在使用的相关PHP代码:
if ($type) {
$icon = imagecreatefrompng("images/" . $type . ".png");
}
else {
die('Invalid type. Valid types are: arcane, elysian, divine, spectral');
}
$img = imagecreatetruecolor(128, 25);
$black = imagecolorallocate($img, 0, 0, 0);
imagecolortransparent($img, $black);
imagecopymerge($img,$icon,0,0,0,0,28,25,100);
imagettftext( $img, 16, 0, 30, 20, $col, $font, $input_num );
header( "Content-type: image/png" );
imagepng( $img );
答案 0 :(得分:1)
imagecolortransparent
将无法正常工作---轮廓附近的背景颜色不是真正的黑色。你最好的选择是首先使用透明区域的PNG图像而不是黑色背景的图像。