[英]Transparent background with GD in PHP
我正在尝试使用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" />
PHP手册基本上说明你不能:
它不支持alpha组件。 它使用直接混合操作。 它仅适用于真彩色图像。
厚度和样式不受支持。
使用具有透明背景颜色的抗锯齿图元可以以一些意想不到的结果结束。 混合方法使用背景颜色作为任何其他颜色。 缺少alpha组件支持不允许基于alpha的抗锯齿方法。
http://es.php.net/imageantialias
因此,除非有人带有第三方代码或一些诙谐的黑客,否则你运气不好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.