加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 使用imagettftext和imagecolortransparent实现真正的透明

发布时间:2020-12-13 22:32:40 所属栏目:PHP教程 来源:网络整理
导读:使用带有透过imagecolortransparent渲染的图像的imagettftext时,文本的边框似乎与原始背景颜色(黑色)混合而不是透明度,从而创建如下所示的文本轮廓: http://i.stack.imgur.com/xLSkK.png而不是使用imagestring,这里: http://i.imgur.com/5R0gT.png 现在我
使用带有透过imagecolortransparent渲染的图像的imagettftext时,文本的边框似乎与原始背景颜色(黑色)混合而不是透明度,从而创建如下所示的文本轮廓:
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);
imagecolortransparent($img,$black);
imagecopymerge($img,$icon,28,25,100);

imagettftext( $img,16,30,20,$col,$font,$input_num );

header( "Content-type: image/png" );
imagepng( $img );

解决方法

imagecolortransparent因为抗锯齿而无法正常工作—轮廓附近的背景颜色不是真正的黑色.你最好的选择是首先使用带有透明区域的PNG图像而不是带有黑色背景的PNG图像.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读