При использовании imagettftext с изображением, отображаемым прозрачным с помощью imagecolortransparent, граница текста, по-видимому, смешивается с исходным цветом фона (черный) вместо прозрачности, создавая таким образом контур текста, как показано здесь:
http://i.stack.imgur.com/xLSkK.png в отличие от использования imagestring, здесь:
http://i.imgur.com/5R0gT.png
Теперь я не уверен, есть ли лучший способ объединить изображения, чтобы они создавались прозрачными с самого начала, или есть какой-то другой метод прозрачности, о котором я не знаю. Вот соответствующий код PHP, который я использую:
if ($type) {
$icon = imagecreatefrompng("images/" . $type . ".png");
}
else {
die('Invalid type. Valid types are: arcane, elysian, divine, spectral');
}
$img = imagecreatetruecolor(128, 25);
$black = imagecolorallocate($img, 0, 0, 0);
imagecolortransparent($img, $black);
imagecopymerge($img,$icon,0,0,0,0,28,25,100);
imagettftext( $img, 16, 0, 30, 20, $col, $font, $input_num );
header( "Content-type: image/png" );
imagepng( $img );