|
 |
Путь: >
Общие вопросы
Общие вопросы
Автор: - Yurik
Дата публикации - 21.5.2005
Просмотров: - 4626
Поддержка шрифтов с кирилицей в GD
[nb]Чтобы использовать эти функции Вам нужно скомпилировать PHP с поддержкой GD (--with-gd) или под Windows прописать<br><b>extension=php_gd.dll</b> (естественно этот файл должен быть в папке для расширений)<br>Посмотреть есть ли у Вас уже эти возможности можно в <b>phpinfo()</b>[/nb]
Если Вы пытались поместить на картинку текст не с таблицы ASCII, например через
[php]
imagestring ($im, 1, 10, 10, "Русский текст", $color);[
/php]
то у вас явно ничего не получилось.
Решением есть использование TrueType шрифтов с поддержкой Unicode. Файл *.ttf должен быть в вашей системе. В Windows они уже есть в папке %windir%\Fonts. Врядле эти шрифты будут у вас под Unix-системой, поэтому скопируйте их в какую либо папку, можно даже в пределах виртуального каталога.
[nb]Не забывайте о правах доступа под Unix. Если пользователь от которого запущен скрипт не будет иметь доступа к файлу шрифта, скрипт выдаст ошибку и вы ее врядле увидите, т.к. скрипт послал "Content-type: image/format" заголовок.[/nb]
Для написания TrueType текста используем ImageTTFText() функцию. Кириличные символы обозначаем через unicode, например &1072; - буква "а".
[php]
<?php
header ("Content-type: image/png");
$font="times.ttf"; // или другой путь в системе
$im = @ImageCreate (580, 80) or die ("Cannot Initialize new GD image stream");
$backgroung = ImageColorAllocate ($im, 255, 255, 255);
$black = ImageColorAllocate ($im, 0, 0, 0);
$text_color = ImageColorAllocate ($im, 233, 14, 91);
$str="";
for ($i=1040; $i<1072; $i++){ // А-Я
$str.="&#".$i."; ";
}
ImageTTFText ($im, 16, 0, 10, 18, $black, $font, $str);
$str="";
for ($i=1072; $i<1104; $i++){ // а-я
$str.="&#".$i."; ";
}
ImageTTFText ($im, 16, 0, 10, 35, $black, $font, $str);
$str="Ё ё Є є І і Ї ї ў ";
ImageTTFText ($im, 16, 0, 10, 52, $black, $font, $str); //украинские буквы
imagerectangle($im, 1, 1, 578, 78, 5);
ImagePng ($im);
?>[
/php]
Обсудить в ФОРУМе - комментариев ()
Путь: >
Общие вопросы
Если вы заметили орфографическую, стилистическую или другую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
|
|