@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
  • Вопрос задан
  • 82 просмотра
Решения вопроса 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 и библиотека будет пытаться искать это имя файла по определённому библиотекой пути шрифтов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы