0

我读过很多关于生成透明图像的文章,但透明度仍然存在问题。首先这里是我的代码:

<?php
$text = 'I feel dirty with those borders';
$color = array( 255, 128, 0);
$font = 'arial.ttf';
$size = 44;

// Create the image
$testImg = imagecreatetruecolor(20, 20);
$testCol = imagecolorallocate($testImg, $color[0], $color[1], $color[2]);
$rect = imagettftext($testImg, $size, 0, 0, 0, $testCol, $font, $text);
$width = $rect[4] - $rect[0] + 2;
$height = $rect[1] - $rect[5];
$yOffset = -$rect[5];

imagedestroy($testImg);

$img = imagecreatetruecolor( $width, $height);
imageantialias ( $img, true);
$black = imagecolorallocate($img, 0, 0, 0);
imagecolortransparent($img, $black);
$col = imagecolorallocate($img, $color[0], $color[1], $color[2]);
$rect = imagettftext($img, $size, 0, -1, $yOffset, $col, $font, $text);
imagepng($img, "test.png");
imagedestroy($img);

?>
<html>
<body bgcolor="ffFFa0">
<img src="test.png" />
</body>
</html>

如果我使用此代码生成图像,我会在文本周围出现黑色边框,其中字母的颜色不是完全不透明或完全透明。我认为原因是只有完全 100% 黑色的像素是透明的。但是还有什么其他方法吗?我也尝试使用 alphablending,但没有成功。

任何人都可以给我一个提示或链接到一个很好的例子吗?

提前致谢

副歌

4

0 回答 0