我正在尝试使用PHP和GD创建图表。该图表已经有效,但我 无法使背景透明(使用抗锯齿)。
我想在渐变背景上放置一条消除锯齿的线条(这是HTML背景),但它会显示一些白色像素(请参阅下面的图片链接和我的代码)。有可能用GD做到这一点吗?我在互联网上搜索了很多,但找不到任何解决方案。
PHP
<?php
$img = imagecreatetruecolor(1000, 1000);
imagesavealpha($img, true);
imagealphablending($img, true);
$color = imagecolorallocatealpha($img, 255, 255, 255, 127);
$red = imagecolorallocate($img, 255, 0, 0);
imagefill($img, 0, 0, $color);
imageantialias($img, true);
imageline($img, 10, 10, 500, 20, $red);
header("content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
HTML
<style type="text/css">
body{
background:url('/Image/background.png');
}
</style>
<img src="./example.php" />
答案 0 :(得分:1)
PHP手册基本上表明你不能:
它不支持alpha分量。它使用直接混合 操作。它仅适用于真彩色图像。
不支持厚度和样式。
使用具有透明背景颜色的抗锯齿图元可以结束 有一些意想不到的结果混合方法使用背景 颜色与任何其他颜色一样。缺乏alpha组件支持 不允许使用基于alpha的抗锯齿方法。
http://es.php.net/imageantialias
因此,除非有人带有第三方代码或一些诙谐的黑客,否则你运气不好。