Я пытаюсь добавить текст в объект Imagick.
Однако я использую функцию setTextEncoding (), но она по-прежнему не работает.
....... $draw = new ImagickDraw(); $draw->setTextEncoding('utf-8'); $draw->setFont($fpath.'/process/ARIAL.TTF'); $draw->setFontSize(80); $draw->setFillColor("#ffffff"); /*** annotate the text on the image ***/ $imageOrg->annotateImage($draw, 60, 100, 0, "onur küçükkeçe"); ........
и в результате я получаю,
onur küçükkeçe
Любая идея, почему она не работает?
Заранее спасибо.
ОБНОВИТЬ
если я ставлю переменную $ text на что-то вроде chr (252), тогда я получаю правильный результат
$text=chr(252); $imageOrg->annotateImage($draw, 60, 100, 0, $text);
в результате я получаю
ü
ОБНОВЛЕНИЕ II
Наконец, я нашел причину этого.
Проблема возникает из-за того, что кодировка документа не определена, но если задана кодировка для скрипта, то imagick не работает, потому что тип документа должен быть установлен в image / png.
Но я не знаю, как это исправить.
ОК. Я нашел решение.
Функция php utf8_decode () решает проблему
....... $draw = new ImagickDraw(); $draw->setTextEncoding('utf-8'); $draw->setFont($fpath.'/process/ARIAL.TTF'); $draw->setFontSize(80); $draw->setFillColor("#ffffff"); /*** annotate the text on the image ***/ $imageOrg->annotateImage($draw, 60, 100, 0, utf8_decode("onur küçükkeçe")); ........