Мар 13

Ниже приведенный php код не печатал адекватно русские буквы

$im = imagecreate(140, 50);
imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 0, 0, 0);
$txt = "Привет";
imagettftext($im, 12, 0, 45, 15, $text_color,'verdanab.ttf', $txt);
imagepng($im);

Пробовал заставить работать по разному, скармливал например в UTF, windows-1251, KOI8-r кодировках, ничего не помогло.

Вспомнил, что на сайте работает библиотека jpgraph, которая выводит всякую графику для анализа в виде а-ля Excel. Данная библиотека также как и вышеприведенный код, генерирует графику через GD. Там на графиках русский был читабельный.
Начал раскопки …

function iso2uni ($isoline)
{
   $isoline = convert_cyr_string($isoline, "w", "k");
   $isoline = convert_cyr_string($isoline, "k", "i");
   for ($i=0; $i < strlen($isoline); $i++) { $thischar=substr($isoline,$i,1); $charcode=ord($thischar); $uniline.=($charcode>175) ? "&#".(1040+($charcode-176)). ";" : $thischar;
   }
   return $uniline;
}

В итоге, пропустив текст через функцию, на картинке был уже читаемый текст.

ЗЫ. Я так понимаю, что у многих людей таких проблем не возникает, т.к. в интернете по форумам подобного решения не видел, обычно у людей проблема в том, что библиотеки не установлены.

Также стоит задуматься о, покупке огнетушителя в киеве

автор: e64f \\ теги: , ,