Php 透明覆盖创建PNG
我有下面的函数,我已经得到了我需要的大小,现在我正在添加一个背景图像,然后希望在所有覆盖文本上添加一个透明背景的文本覆盖,但是Php 透明覆盖创建PNG,php,image,transparency,gd,Php,Image,Transparency,Gd,我有下面的函数,我已经得到了我需要的大小,现在我正在添加一个背景图像,然后希望在所有覆盖文本上添加一个透明背景的文本覆盖,但是imagefilledrectangle应用了预期的变量$white,我试图看看是否有任何方法告诉函数是透明的,而不是接受颜色,在这个例子中,PHP文档说颜色是imagefilledrectangle的必需参数,任何建议都非常感谢 背景图像是本地图像: define("BACKGROUND_FILE", "background.png"); 功能: public fun
imagefilledrectangle
应用了预期的变量$white
,我试图看看是否有任何方法告诉函数是透明的,而不是接受颜色,在这个例子中,PHP文档说颜色是imagefilledrectangle
的必需参数,任何建议都非常感谢
背景图像是本地图像:
define("BACKGROUND_FILE", "background.png");
功能:
public function generateImage()
{
if (file_exists(BACKGROUND_FILE)) {
$im = @imagecreatefrompng(BACKGROUND_FILE);
if($im) {
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 115, 150, 195);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
$text = 'Test';
$font = 'arial_narrow_7.ttf';
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
} else {
echo 'Error';
}
}
}
我尝试添加
imagecolortransparent($im,$white)
在imagefilledrectangle
之前,但没有任何区别。解决了这个问题,在函数中不需要使用imagefilledrectangle
行,下面给出了透明的覆盖文本元素,因为现在没有应用填充
public function generateImage()
{
if (file_exists(BACKGROUND_FILE)) {
$im = @imagecreatefrompng(BACKGROUND_FILE);
if($im) {
$black = imagecolorallocate($im, 115, 150, 195);
$text = 'Test';
$font = 'arial_narrow_7.ttf';
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
} else {
echo 'Error';
}
}
}
通过计算,不需要在函数中使用
imagefilledrectangle
行,下面给出了透明的覆盖文本元素,因为现在没有应用填充
public function generateImage()
{
if (file_exists(BACKGROUND_FILE)) {
$im = @imagecreatefrompng(BACKGROUND_FILE);
if($im) {
$black = imagecolorallocate($im, 115, 150, 195);
$text = 'Test';
$font = 'arial_narrow_7.ttf';
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
} else {
echo 'Error';
}
}
}