加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP / GD – 透明背景

发布时间:2020-05-25 09:35:43 所属栏目:PHP 来源:互联网
导读:我想在 PHP中与GD结合使用以下内容. ImageMagick不是一个选择,不幸的是,这似乎是一个常见的问题,必须有一个解决方案,我似乎找不到它. 我想创建一个透明背景的PNG.然后我想画一个矩形,复制一个图像,并添加一些文本.这样做的一个方法如下: $image = ImageCreat

我想在 PHP中与GD结合使用以下内容. ImageMagick不是一个选择,不幸的是,这似乎是一个常见的问题,必须有一个解决方案,我似乎找不到它.

我想创建一个透明背景的PNG.然后我想画一个矩形,复制一个图像,并添加一些文本.这样做的一个方法如下:

$image = ImageCreateTrueColor (800,600);
imagecolortransparent ($image,0); //0 is pure black,the default fill color
imagerectangle (...);
//code to copy an image
imagettftext ($image,...);
imagepng ($image);

这很好,除了部分复制的图像可能是黑色,和/或文本可能是黑色.这样也变得透明,这是我不想要的.

imagefill ($image,0x7FFF0000);
imagetransparent ($image,0x7FFF0000);

上面的代码是我在网上找到的,它用红色填充,然后使红色透明.再次,这会导致图像中的所有红色变得透明.我可以选择不太可能发生的颜色,但我不能保证.

有没有我失踪的东西?这可以解决吗?
感谢您的回复!

如果合并图像,imagecolortransparent可能不是你想要的,因为单色透明度是讨厌的.

相反,请尝试使用透明填充掩码,如下所示:

<?php
$image = imagecreatetruecolor(100,100);

// Transparent Background
imagealphablending($image,false);
$transparency = imagecolorallocatealpha($image,127);
imagefill($image,$transparency);
imagesavealpha($image,true);

// Drawing over
$black = imagecolorallocate($image,0);
imagefilledrectangle($image,25,75,$black);

header('Content-Type: image/png');
imagepng($image);

(编辑:安卓应用网)

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

    推荐文章
      热点阅读