Динамическое изображение PHP имеет нежелательную границу - PullRequest
0 голосов
/ 06 декабря 2011

У меня возникли проблемы с проектом, который я делаю с помощью Google Maps.

У меня есть все функции карты, и она прекрасно работает. Я хочу добавить динамически сгенерированные значки на карту, и я выяснил, как это сделать, используя 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 Ответ

2 голосов
/ 06 декабря 2011

Я точно не знаю, так ли это, но что-то подобное может быть вызвано, если ваше исходное изображение использовало прозрачность на полях, чтобы получить эффект закругленных углов. если вы хотите сохранить прозрачность исходного изображения, вам нужно также изучить другие функции. что-то вроде этого должно помочь:

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

* сразу после создания изображения

...