Русский текст на изображении

Silya

Guest
Русский текст на изображении

Товарищи, возникла у меня такая проблема вывода русского теста на изображении типа
PHP:
$m=Date("m");
	$d=Date("d");
	$y=Date("Y");
	switch ($m)
	{
	case 1:	$m="Января";  break;
	case 2: $m="Февраля"; break;
	case 3: $m="Марта";   break;
	case 4: $m="Апреля";  break;
	case 5: $m="Мая";     break;
	case 6: $m="Июня";    break;
	case 7: $m="Июля";    break;
	case 8: $m="Авгуса";  break;
	case 9: $m="Сентября";break;
	case 10:$m="Октября"; break;
	case 11:$m="Ноября";  break;
	case 12:$m="Декабря"; break;
	}
	$full=$d." ".$m." ".$y." года";
	
print $full;
но русские буквы на рисунке загруженом отображаются просто ужасно. Пишу я вот так:
Header("Content-type: image/png");
$str=$message;
$im = ImageCreateFromPng($image);
$color = ImageColorAllocate($im, 120, 120, 120);
ImageString($im,3,4,2,$str,$color);
ImagePng($im);
ImageDestroy($im);
....может криво
Посоветуйте кто чем может
 

Silya

Guest
Как можно добиться того, чтобы русские буквы отображались адекватно?
 

nagash

Guest
PHP:
function utf($str) {
		$utf = "";
		for($i = 0; $i < strlen($str); $i++)
		{
				$donotrecode = false;
				$c = ord(substr($str, $i, 1));
				if ($c == 0xA8) $res = 0xD081;
				elseif ($c == 0xB8) $res = 0xD191;
				elseif ($c < 0xC0) $donotrecode = true;
				elseif ($c < 0xF0) $res = $c + 0xCFD0;
				else $res = $c + 0xD090;
				$utf .= ($donotrecode) ? chr($c) : (chr($res >> 8) . chr($res & 0xff));
		}
		return $utf;
}
$im = imagecreatetruecolor (400, 100);
$black = ImageColorAllocate ($im, 0, 0, 0);
$white = ImageColorAllocate ($im, 255, 255, 255);
ImageTTFText ($im, 40, 0, 10, 50, $white, "verdanab.ttf", utf("Пример текста"));

Header("Content-type: image/png");
ImagePng($im);
ImageDestroy ($im);
 
Сверху