По Английски картинка подписывается идеально...
по русски пишет чушь всякую...
скажите топросто функция
imagettftext($src_img, $height_front, $angle, 10, 444, $color, $front_file, $text)
не работает с русской кодировкой?
или что-то не так???
есть ли альтернативныйй способ?
пс:шрифт русский.
Спустя 48 минут, 9 секунд (25.01.2008 - 15:27) disc написал(а):
Код
<?php
header("Content-type: image/png");
$im = imagecreatetruecolor(400, 30);
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
$text = 'Проверка...';
$font = 'arial.ttf';
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
?>
header("Content-type: image/png");
$im = imagecreatetruecolor(400, 30);
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
$text = 'Проверка...';
$font = 'arial.ttf';
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
?>
И все хорошо работает, файл со шрифтом положи в папку со скриптом
Спустя 24 дня, 7 часов, 24 минуты, 37 секунд (20.02.2008 - 22:51) sergeiss написал(а):
У меня тоже ничего не выводилось по-русски, пока я не сделал перекодировщик русского текста. Как это описано в книге Вадима Дунаева "PHP". Я думаю, что он не будет в обиде на меня , я выложу сюда текст предложенной им функции для решения проблемы перекодирования текста именно в этой ситуации.
Код |
function str_rus( $str ) // преобразование русских букв в строке для вывода на картинку { $nstr=""; // итоговая строка for( $i=0; $i<strlen( $str ) ; $i++) { $symbol=substr($str, $i, 1); // get symbol $ascii=ord( $symbol ); // get ascii code of this symbol if( $ascii < 128 ) { $nstr .= $symbol; } elseif( $ascii > 191 and $ascii < 256 ) { $nstr .= "&#". (string)(848 + ord($symbol)).';'; } else { $nstr .= $symbol; } } // end of for( $i ) loop return( $nstr ); } // end of function str_rus |
Данный код используется очень легко и просто, вот так:
imagettftext( ......., str_rus("Этот текст будет хорошо читаться по-русски") ); // все параметры, кроме текста, я специально убрал, чтобы они не загромождали вид.
Спустя 26 дней, 10 часов, 32 минуты, 24 секунды (17.03.2008 - 09:24) LoneCat написал(а):
Перед тем как выводить что-то по-русски - нужно перекодировать это в уникод, для этого можно использовать функцию mb_convert_encoding(), ну или с помощью собственной подпрограммы как sergeiss.
Спустя 9 месяцев, 18 дней, 5 часов, 55 минут, 25 секунд (5.01.2009 - 15:19) uMnepaTop написал(а):
PHP |
iconv('cp1251', 'UTF-8', $text); |
Так куда проще мне кажется
_____________
Спасибо, за прочтение:)