Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проблема с кирилицей в gd

Сообщения:  [1-7] 

 
 автор: Trianon   (14.01.2007 в 17:04)   письмо автору
 
   для: Valick   (14.01.2007 в 00:50)
 

На самом деле, достаточно преобразовать строку в utf-8, что может быть выполнено, например, с помощью iconv(()

   
 
 автор: LordFreeman   (14.01.2007 в 01:09)   письмо автору
 
   для: Valick   (14.01.2007 в 00:50)
 

Вау, я поражен такому быстрому ответу!
Огромное спасибо! Все заработало :)

   
 
 автор: Valick   (14.01.2007 в 00:50)   письмо автору
 
   для: Sergey89   (13.01.2007 в 23:21)
 

Извиняюсь, мне надо было хотябы прочитать скрипт. Позвольте исправить положение.

<?php
// Функция преобразует текст из кодировки iso8859-5 в Unicode-entities.
// Ее необходимо вызывать перед запуском imageTtfText(), чтобы корректно
// отображать русские буквы. Аргумент $from задает исходную кодировку
// страницы (см. convert_cyr_string() для описания значений параметра).
function toUnicodeEntities($text, $from="w") {
$text = convert_cyr_string($text, $from, "i");
$uni = "";
for ($i=0, $len=strlen($text); $i<$len; $i++) {
$char = $text{$i};
$code = ord($char);
$uni .= ($code>175)? "&#" . (1040+($code-176)) . ";" : $char;
}
return $uni;
}

$img = imagecreatetruecolor(350, 200);
If ($img)
{
$green = imagecolorallocate($img, 0, 255, 0);
$yellow = imagecolorallocate($img, 255, 250, 0);

$string = toUnicodeEntities("шрифт True Type");
$box = imagettftext($img, 20, 10, 10, 150, $yellow, "arial.ttf", $string);


$font = 4;
$height = $box[5] - imagefontheight($font);
imagestring($img, $font, 40, $height, "PHP and GDLib", $green);
header("Content-type: " .image_type_to_mime_type(IMAGETYPE_PNG));
imagepng($img);
}
?>

   
 
 автор: Sergey89   (13.01.2007 в 23:21)   письмо автору
 
   для: Valick   (13.01.2007 в 22:41)
 

>> во встроенных шрифтах.
ключевое слово. Arial.ttf - не встроенный шрифт.

   
 
 автор: Valick   (13.01.2007 в 22:41)   письмо автору
 
   для: LordFreeman   (13.01.2007 в 22:04)
 

Недавно читал может пригодится.

Изначально библиотека GD не поддерживает русские буквы во встроенных шрифтах. Тем не менее большинство хостинг провайдеров добавляют эту поддезжку. О том как этого добиваются можно прочитать по адресу http://megaz.arbuz.com/?p=russian-gd

А шрифт TTF?

   
 
 автор: Sergey89   (13.01.2007 в 22:25)   письмо автору
 
   для: LordFreeman   (13.01.2007 в 22:04)
 

Может быть настроить локали?

   
 
 автор: LordFreeman   (13.01.2007 в 22:04)   письмо автору
 
 

вот код, из вашей книги Практика создания веб-сайтов

<?php
$img 
imagecreatetruecolor(350200);
If (
$img)
{
$green imagecolorallocate($img02550);
$yellow imagecolorallocate($img2552500);

$box imagettftext($img201010150$yellow"arial.ttf""шрифт True Type");
$font 4;
$height $box[5] - imagefontheight($font);
imagestring($img$font40$height"PHP and GDLib"$green);
header("Content-type: " .image_type_to_mime_type(IMAGETYPE_PNG));
imagepng($img);
}
?>

сервак стоит на Suse Linux 10.2
что нужно исправить чтобы он отображал кириллицу.
PS шрифт лежит в том же каталоге что и скрипт. Шрифт брал с винды XP русской.

на картинке изображено то, что получается вместо кирилицы квадратики.

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования