|
|
|
| подобоал нормальный шрифт но никак по русски не пишет. в кодировке win-1251 каракули, в utf-8 квадратики :)
может я пхп как то неправильно настроил?
ЗЫ тестил все на виндовс апаче | |
|
|
|
|
|
|
|
для: Kolobok
(28.11.2006 в 18:18)
| | писать нужно в utf-8
файл с фонтом должен лежать в текущем каталоге. | |
|
|
|
|
|
|
|
для: Trianon
(28.11.2006 в 18:29)
| | еслиб все было так просто я бы не спрашивал... | |
|
|
|
|
|
|
|
для: Kolobok
(28.11.2006 в 18:34)
| | Сам сталкивался с такой же проблемой. Все зависит только от используемого шрифта. Выход один использовать те, которые работают с кирилицей и utf-8. | |
|
|
|
|
|
|
|
для: Drago
(28.11.2006 в 19:32)
| | Шрифт, в котором нет кирилицы, не будет формировать русские буквы и в Windows. Это как раз легко проверяется безо всякого PHP. | |
|
|
|
|
|
|
|
для: Trianon
(28.11.2006 в 19:43)
| | Не отрицаю, просто мне попадались такие шрифты, в которых была кирилица, но через ПХП выводились квадратики, при кодировании в utf-8. | |
|
|
|
|
|
|
|
для: Drago
(28.11.2006 в 19:45)
| | Небось наследие Windows 3.1 ... Были, помнится, версии, в которых UNICODE-индексов в таблице не было, а присутствовали только ANSI-индесы. Но это было больше десятка лет назад. И помоему, уже 3.11 от этого недуга была излечена. | |
|
|
|
|
 134.2 Кб |
|
|
для: Trianon
(28.11.2006 в 19:50)
| | Не знаю, чье это наследие, может даже лентяя создателя. :) Поленился какую галочку, в программе создания шрифтов, поставить и все. Или вот как в аттаче, многих спец символов не хватает :) | |
|
|
|
|
|
|
|
для: Drago
(28.11.2006 в 20:05)
| | а как узнать какой шрифт то использовать? | |
|
|
|
|
|
|
|
для: Kolobok
(28.11.2006 в 20:11)
| | Полевыми испытаниями ;) | |
|
|
|
|
|
|
|
для: Drago
(28.11.2006 в 20:12)
| | Прикалываетесь? Какой русский шрифт специальный? Все функции GD пишут любыми шрифтами по русски (конечно если шрифт предусматривает русский набор) только строку в вывод нужно передавать уже перекодированную в UTF16LE. Ткни в поиск и найдешь простейший скрипт перекодировки строки из win в utf16le.
Перед оправкой на вывод в GD, сначала конвертни строку и потом только ее отправляй в функцию печати по картинке. | |
|
|
|
|
|
|
|
для: XPraptor
(29.11.2006 в 03:20)
| | >Прикалываетесь? Какой русский шрифт специальный? Все функции GD пишут любыми шрифтами по русски (конечно если шрифт предусматривает русский набор) только строку в вывод нужно передавать уже перекодированную в UTF16LE.
Ну не знаю, сколько не качал шрифты, с пометкой, что оный поддерживает кирилицу, попадались такие, что при печати на картинке были одни квадратики. Получается, из этого можно сделать вывод, что этот шрифт не "предусматривает русский набор", то есть не поддерживает кирилицу. Значит, на сайтах со шрифтами, иногда, пишут недостоверную информацию.
>Ткни в поиск и найдешь простейший скрипт перекодировки строки из win в utf16le.
>Перед оправкой на вывод в GD, сначала конвертни строку и потом только ее отправляй в функцию печати по картинке.
Хочу заметить, что мне ничего искать не нужно. Я пользуюсь функцией, которую, кстати, нашел на этом форуме и которая меня вполне устраивает.
<?
function win2uni($s)
{
$s = convert_cyr_string($s,'w','i');
for ($result='', $i=0; $i<strlen($s); $i++)
{
$charcode = ord($s[$i]);
$result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
}
return $result;
}
?>
|
| |
|
|
|
|
|
|
|
для: Drago
(29.11.2006 в 19:58)
| | Читай внимательно. Функции понимают ТОЛЬКО ЮНИКОД (желательно полный UTF16LE в котором и созданы все русские шрифты). Ты конвертишь из виндовс в iso не прокатывает для не юникод шрифтов такая конвертация. Только в юникод и потом пишешь по картике любым шрифтом, я юзал это на своем сайте shop.aon.by пока не задолбало, медленно выводит много картинок, поэтому и бросил страдать фигней. | |
|
|
|
|
|
|
|
для: XPraptor
(01.12.2006 в 04:15)
| | Что-то Вы путаете. imagettftext() принимает байтовый (UTF-8) поток, а не пословный(UTF16).
Он, конечно, может содержать ссылки на десятичные номера символов в UNICODE (вида Ю), хотя это скорее извращение, чем метод. | |
|
|
|
|
|
|
|
для: Trianon
(01.12.2006 в 09:48)
| | Конечно принимает UTF-8, только вот наши буквы ё и й в шрифтах это multiwide символы, поэтому шрифты созданы в 16 битной последовательности. Поэтому я и написал ЖЕЛАТЕЛЬНО. Но можно и UTF-8 если не страшно получить переконверт ё й и Р. Наше Р большое тоже мультивайд не знаю почему даже. | |
|
|
|
|
|
|
|
для: XPraptor
(01.12.2006 в 10:34)
| |
<?php
$text = 'Силён Русский Дух';
$text= iconv('windows-1251', 'UTF-8', $text);
$im = imagecreatetruecolor(400, 50);
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 639, 199, $white);
imagettftext($im, 20, 0, 20, 30, $grey, 'ARIAL.TTF',$text);
header('Content-Type: image/jpeg');
imagejpeg($im);
?>
|
Как это будет выглядеть на практике? | |
|
|
|