Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php imagecolorallocatealpha返回白色图像_Php_Png_Transparency_Gd - Fatal编程技术网

Php imagecolorallocatealpha返回白色图像

Php imagecolorallocatealpha返回白色图像,php,png,transparency,gd,Php,Png,Transparency,Gd,我对PHP中的imagecolorallocatealpha有一个问题。将不透明度设置为127时,我得到的是白色图像,而不是透明图像 这是我的密码 $image = imagecreatetruecolor($width, $height); imagesavealpha($image, true); $color = imagecolorallocatealpha($image, 255, 255, 255, 127); imagefill($image, 0, 0, $color); hea

我对PHP中的imagecolorallocatealpha有一个问题。将不透明度设置为127时,我得到的是白色图像,而不是透明图像

这是我的密码

$image = imagecreatetruecolor($width, $height);
imagesavealpha($image, true);
$color = imagecolorallocatealpha($image, 255, 255, 255, 127);
imagefill($image, 0, 0, $color);
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
exit;
我也试过这个,但我得到了同样的结果

$image = imagecreatetruecolor($width, $height);
$x = imagecolorat($image, 0,0);
imagecolortransparent($image, $x);
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
exit;

有什么想法吗?它是否与服务器配置有关?

如果这是图像文件使用的所有代码,则尚未为
$width
$height
变量定义任何值,脚本将抛出错误

一般来说,如果要调试图像,请删除内容类型标题。这样,您可以通过在浏览器中访问脚本来查看任何潜在错误。

替换第一行

$image = imagecreatetruecolor($width, $height);

透明性现在应该可以工作了,但是颜色调色板不能准确地显示一些真实的颜色

任何白色像素现在都将透明

要将透明度颜色从白色更改为白色,请使用:

$r = *red colour value (0 to 255)*;
$g = *green colour value (0 to 255)*;
$b = *blue colour value (0 to 255)*;
$color = imagecolorallocatealpha($image, $r, $g, $b, 127);

您的代码(第一个示例)适合我。我知道这个问题很可笑,但你确定你没有把图像覆盖在白色背景上吗?因为当直接在浏览器中或在白色背景上查看时,图像显示为白色是很自然的,因为您可以看到图像后面的白色。我问这个是因为你的例子对我来说非常有效。下面是在Google Chrome开发工具的网络选项卡中查看图像时的外观:不幸的是,它是白色的,而不是背景(在firefox中,很明显图像背景是某种深灰色)。然而,当在谷歌Chrome开发工具的网络标签中查看时,它看起来很奇怪,好像它没有被解释为png。(我用一个只包含上面代码的php文件进行了测试)。很抱歉,我忘了提到它,我还为dmentions添加了值。所以确切的代码很奇怪。您可以发布phpinfo()部分来介绍您的GD库版本吗?我的是这样的:如果你正在使用Ubuntu,我似乎记得一些关于必须手动编译PHP以使用捆绑的GD库而不是官方库的事情:
$r = *red colour value (0 to 255)*;
$g = *green colour value (0 to 255)*;
$b = *blue colour value (0 to 255)*;
$color = imagecolorallocatealpha($image, $r, $g, $b, 127);