Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как сделать надпись на картинках по русски?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Rooner
Отправлено: 15 Мая, 2015 - 13:39:55
Post Id


Посетитель


Покинул форум
Сообщений всего: 291
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




Нужно сделать надпись на картинках русскими буквами, но имеется проблема с кодировкой.
Есть скрипт, который делает надпись на картинке. Он использует файл со шрифтами, находящийся на сайте arial.ttf. Однако сам файл имеет кодировку ANSI, а веб сервер и сайт работают только под utf-8. В итоге надписи на картинках выводятся в виде квадратов.
Если можно перекодировать arial.ttf, то пожалуйста скажите КАКОЙ программой?
Если можно скачать arial.ttf в UTF-8, то пожалуйства дайте ссылку! Искал не нашел.

PHP:
скопировать код в буфер обмена
  1.  
  2. createWm($im1, "надпись", dirname(realpath(__FILE__))."/../image_load/css/arial.ttf");
  3.  
  4. function createWm(&$img,$text,$font,$r=128,$g=128,$b=128,$alphaLevel=60){
  5.   $width = imagesx($img);
  6.   $height = imagesy($img);
  7.   $angle =  -rad2deg(atan2((-$height),($width)));
  8.  
  9.   $text = " ".trim($text)." ";
  10.  
  11.   $c = imagecolorallocatealpha($img,$r,$g,$b,$alphaLevel);
  12.   $size = (($width+$height)/3)*2/strlen($text);
  13.   $box  = imagettfbbox ( $size, $angle, $font, $text );
  14.   $x = $width/2 - abs($box[4] - $box[0])/2;
  15.   $y = $height/2 + abs($box[5] - $box[1])/2;
  16.  
  17.   imagettftext($img,$size ,$angle, $x, $y, $c, $font, $text);
  18.   return $img;
  19. }
 
 Top
Ts.Saltan
Отправлено: 15 Мая, 2015 - 20:51:45
Post Id



Посетитель


Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013  
Откуда: Belarus


Помог: 22 раз(а)




перед нанесением текста перевести его в нужную кодировку
PHP:
скопировать код в буфер обмена
  1. $text = iconv('UTF-8', 'windows-1251', $text);

(Добавление)
или так (предпочтительнее)

(Отредактировано автором: 15 Мая, 2015 - 21:04:44)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Кодировки и все смежное »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB