Задать вопрос
@lexstile

Как исправить проблемы с кодировкой при наложении текста на изображение?

Файл в кодировке UTF-8.
$im = imagecreate(150, 80);

imagecolorallocate($im, 244, 244, 244);

$font = './fonts/OpenSans-Regular.ttf';
$x = 20;
$y = 20;
$text = 'Привет';
// $text = iconv("CP1251", "UTF-8", $text);
$textcolor = imagecolorallocate($im, 0, 0, 255);

$letters = str_split($text);

foreach ($letters as $letter) {
  imagettftext($im, 15, 0, $x, $y, $textcolor, $font, $letter);
	$x += 20;
}

imagegif($im, './image.gif');
imagedestroy($im);

Результат:
6027f417ecaf2792059022.gif
6027f6977357f069408118.png
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Простой 8 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@Nc_Soft
Проблема не в картинке, а в тексте str_split()
Надо использовать https://www.php.net/manual/ru/function.mb-str-split.php

А также путь к шрифу должен быть абсолютным
https://www.php.net/manual/ru/function.imagettftext.php

fontfile
Путь к шрифту TrueType, который вы хотите использовать.
В зависимости от того, какая библиотека GD используется в PHP, если fontfile не начинается с символа /, то к имени файла будет добавлено .ttf и библиотека будет пытаться искать это имя файла по определённому библиотекой пути шрифтов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽