Для цикла с imagettftext и массивом

Я сталкиваюсь с проблемой, пытаясь создать простой генератор текста в образе, используя библиотеку PHP GD.

На моей странице формы я посылаю переменные, разделенные символом ';' к массиву. И затем на моей странице генерации изображений я хочу отображать мои переменные из массива отдельно на моем только что созданном изображении с пространством 15 px между ними.

В моем цикле FOR функции PHP должны вычислять ширину отображения каждой переменной отдельно и общую ширину конечного изображения для ее создания.

Я пробовал следующий код, но он не работает. У меня есть alrady проверили синтаксис, и все, кажется, в порядке

Вот мой код

$code = $_POST['chars']; $size = 20; $marge = 15; $font = '../keyboard/NotoSans-Regular.ttf'; $text_colour = imagecolorallocate($img, 255, 255, 255); $chars_list = trim($_POST['chars']); $chars_array = explode(';', $chars_list); $count = count($chars_array); for($i = 0; $i < $count;++$i) { $box = imagettfbbox($size, 0, $font, $chars_array[$i]); $largeur = $box[2] - $box[0]; $largeur_lettre = round($largeur/$count); $hauteur = 50; $img = imagecreate($largeur+$marge, $hauteur); $l = $chars_array[$i]; $angle = 0; imagettftext($img,$size,$angle,($i*$largeur_lettre)+$marge, $hauteur, $text_colour, $font, $l); } header("Cache-Control: no-cache, must-revalidate"); header('Content-type: image/png'); imagepng($img); imagedestroy($img); 

Я пробовал со следующим значением, введенным в моей форме: «ą; ć; ł; ł; ó; ś; ź; ż; Ą; Ć; Ę; Ł; Ń; Ó; Ś; Ź; Ż»

Заранее благодарю за ваши ответы.

редактировать

Функция генерации изображения не работает. Я получаю только черную страницу без чего-либо. Я ожидаю изображение с белым фоном и моими письмами.

изменить 2

Я улучшил свой код, и я получил лучший результат. Этот код генерирует изображение, в котором много символов, таких как Ã © вместо ąćęłńóśźż.

Я думаю, что проблема в моем цикле «для».

В результате я ожидаю изображение с «ąćęłńóśźż» вместо символов Ã ©. Вот мой улучшенный код

 $mot = utf8_encode('ąćęłńóśźż'); $size = 20; $marge = 15; $font = '../keyboard/NotoSans-Regular.ttf'; $box = imagettfbbox($size, 0, $font, $mot); $largeur = $box[2] - $box[0]; $hauteur = $box[1] - $box[7]; $largeur_lettre = round($largeur/strlen($mot)); $img = imagecreate($largeur+$marge, $hauteur+$marge); $blanc = imagecolorallocate($img, 255, 255, 255); $noir = imagecolorallocate($img, 0, 0, 0); for($i = 0; $i < strlen($mot);++$i) { $l = $mot[$i]; $angle = mt_rand(-35,35); imagettftext($img,$size,$angle,($i*$largeur_lettre)+$marge, $hauteur+mt_rand(0,$marge/2),$noir, $font, $l); } header("Cache-Control: no-cache, must-revalidate"); header('Content-type: image/png'); imagepng($img); imagedestroy($img); 

В результате я получаю этот результат, которого я ожидаю в результате того же изображения, но с символами ąćęłńóśźż вместо Ã ©.

Solutions Collecting From Web of "Для цикла с imagettftext и массивом"