Как нанести текст на изображение с помощью PHP?
PHP – многофункциональный язык программирования, и мы с вами не один раз в этом убеждались. Сегодня мы немножко поработаем с графикой, а именно – я научу вас наносить нужный вам текст на изображение с помощью этого языка.
Для начала приведу полный код скрипта, который хорошо прокомментирован:
<?php
$img = "./pandoge_com.png"; // Ссылка на файл
$font = "./arial.ttf"; // Ссылка на шрифт
$font_size = 24; // Размер шрифта
$degree = 0; // Угол поворота текста в градусах
$text = "Hello, World!"; // Ваш текст
$y = 100; // Смещение сверху (координата y)
$x = 200; // Смещение слева (координата x)
$pic = imagecreatefrompng($img); // Функция создания изображения
$color = imagecolorallocate($pic, 0, 0, 0); // Функция выделения цвета для текста
imagettftext($pic, $font_size, $degree, $x, $y, $color, $font, $text); // Функция нанесения текста
imagepng($pic, "./".time().".png"); // Сохранение рисунка
imagedestroy($pic); // Освобождение памяти и закрытие рисунка
?>
А теперь я расскажу вам о некоторых его нюансах.
1. Переменная $font – обязательно (во избежание ошибок) должна содержать в себе ссылку на файл шрифта. Для примера в конце статьи прикреплен шрифт «Arial».
2. Переменная $pic. Здесь в зависимости от вашего формата изображения используете соответствующую функцию:
PNG – imagecreatefrompng;
JPG – imagecreatefromjpeg;
GIF – imagecreatefromgif.
3. Переменная $color – цвет шрифта в RGB-формате. Черный цвет – «0, 0, 0», белый – «255, 255, 255» и т.д.
4. Функция «imagepng». Здесь вы выбираете ту функцию, в формате которой хотите сохранить изображение:
PNG – imagepng;
JPG – imagejpeg;
GIF – imagegif.
Обратите внимание, что для того, чтобы не происходило перезаписи файлов, в качестве имени файла выступает временная метка Unix. Расширение файла вы прописываете сами в зависимости от выбранной функции сохранения.
Ну вот, вроде, и все, что вам нужно знать, остальные моменты помечены в коде.
Часть «./» означает что чтение и сохранение файлов осуществляется в той папке, где находится ваш скрипт.
Если возникли вопросы – задавайте их в комментариях.