用php生成抗锯齿透明png图像

时间:2012-09-25 20:47:45

标签: php tags transparency antialiasing

我已经阅读了很多关于生成透明图像但仍然存在透明度问题的艺术作品。首先,这是我的代码:

<?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但没有成功。

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

提前致谢

parascus

0 个答案:

没有答案