PHP动态图像有不受欢迎的边框

时间:2011-12-06 09:28:17

标签: php google-maps google-maps-api-3 icons image-manipulation

我在使用Google地图进行的项目时遇到了一些问题。

我已经找到了所有地图功能,并且效果很好。我想在地图上添加动态生成的图标,我已经想出了如何使用PHP动态地将我想要的文本添加到图标图像中。

但是,图标会更改为我想添加的文字。当PHP代码中没有任何东西应该做这样的事情时,原始边框会变得更厚。我在这篇文章中附上的图片显示了两个图标。顶部图标是原始图标,底部图标是我的PHP脚本添加的文本。请注意较粗的边框。

screenshot

这是我的PHP代码:

<?php  
// GETS THE NUMBER TO ADD TO THE ICON
$number = $_GET['number'];

// THE SOURCE OF THE ICON THAT I WANT TO ADD THE TEXT TO
$src = $_GET['src'];

header ("Content-type: image/png");

$font = 4;
$im = imagecreatefrompng($src);

// POSITION THE TEXT TO THE PREFERRED LOCATION
$x = 5 ;
$y = 2;

$textColor = imagecolorallocate ($im, 0, 0,0);
imagestring ($im, $font, $x, $y,  $number, $textColor);
imagepng($im);
?>

请记住,所有这些都有效,除了图像更改只是添加文本。没有真正厚实的边框,图标看起来更好。

1 个答案:

答案 0 :(得分:2)

我不确定是否是这种情况但是如果您的初始图像在边缘使用透明度以获得圆角效果,则会导致类似这样的事情。如果你想保持初始图像的透明度,你还需要研究其他功能。这样的事情应该有所帮助:

imagealphablending( $im, false );
imagesavealpha( $im, true );

*在imagecreatefrompng之后