Простая задача которую не получается решить быстро. Дело в том, что если воспользоваться функцией imagecolortransparent(), то эта функция оставляет вокруг букв контур из пикселей близкие по цвету к заднему фону.
Избавится от этого эффекта достаточно просто, далее я приведу рабочий пример.
В этом примере можно посмотреть:
$w = 500; $h = 100; $image = imagecreatetruecolor( $w, $h ) or die('Cannot create image'); //Цвета $white = 0xffffff; $black = 0x000000; $red = 0xff0000; //Cам текст $text = iconv( 'cp1251', 'utf-8', 'MyWebCenter' ); //Шрифт $font = realpath('fonts/arial.ttf'); // - обязательно надо указать путь до шрифта $fontsize = 30; // размер шрифта, gd1 - в пикселях, gd2 - в пунктах ///Централизация шрифта $sz = imagettfbbox( $fontsize, 0 , $font , $text ); $x = ( imageSX($image) - ( $sz[2] - $sz[0] ) ) / 2 ; $y = ( imageSY($image) + ( $sz[1] - $sz[7] ) ) / 2 ; //Делаем изображение прозрачным imagesavealpha($image,true); imagefill($image, 1, 1, imagecolorallocatealpha( $image, 255, 255, 255, 127 ) ); imagecolortransparent($image, $black); //Вставляем текст imagettftext( $image, $fontsize, 0, $x, $y, $red, $font, $text ); //Выводим изображение header('Content-type: image/png'); imagepng($image); imagedestroy($image);