Возможно ли добиться реальной прозрачности с помощью imagettftext и imagecolortransparent? - PullRequest
4 голосов
/ 10 ноября 2011

При использовании 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 );

1 Ответ

1 голос
/ 10 ноября 2011

imagecolortransparent никогда не будет работать очень хорошо из-за сглаживания - фоновый цвет вблизи контуров не является истинно черным.Лучше всего использовать изображения PNG с прозрачными областями, а не с черным фоном.

...