我想结合 GD 在 PHP 中执行以下操作。不幸的是,ImageMagick 不是一个选项,但这似乎是一个常见问题,因此has作为一个解决方案,我似乎找不到它。
我想创建一个具有透明背景的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);
这工作得很好,除了复制的图像的一部分可能是黑色的,和/或文本可能是黑色的。然后这也变得透明,这是我的don't want.
imagefill ($image, 0,0, 0x7FFF0000);
imagetransparent ($image, 0x7FFF0000);
上面的代码是我在网上找到的,将其填充为红色,然后使红色透明。同样,这会导致图像中的所有红色变得透明。我可以选择一种不太可能出现的颜色,但我不能保证这一点。
我有什么遗漏的吗?这可以解决吗?
感谢您的回复!
imagecolortransparent
如果您要合并图像,则可能不是您想要的,因为单色透明度很糟糕。
相反,尝试使用透明填充蒙版,如下所示:
<?php
$image = imagecreatetruecolor(100, 100);
// Transparent Background
imagealphablending($image, false);
$transparency = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparency);
imagesavealpha($image, true);
// Drawing over
$black = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 25, 25, 75, 75, $black);
header('Content-Type: image/png');
imagepng($image);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)