Php add text to image

How to add text to an image with PHP GD library

First of all $black = ImageColorAllocate($im, 255, 255, 255); — this is white, not black. Do you get any errors? Checked the error-log?

@iMoses I think the $black is just because hes copied code from php.net: php.net/manual/en/function.imagettftext.php

Doesn’t make it right or make sense. I’m sure they got it right. It’s not a problem, just confusing. The «blank» image might just be white on a white background.

I changed from white to black, but still same problem!!I think Imagettftext cannot find «verdana.ttf» file, although everything is in same folder..

4 Answers 4

Use this to add text to image (copied from PHP for Kids)

You just pasted it from phpforkids.com/php/php-gd-library-adding-text-writing.php try to point out problem instead

If I would want to add several lines of text on the same image before sending it to the browser, would several imagettftext() functions would need to be added? Also, how do I save this image to an actual directory in my server so that the user can print it anytime he wants?

$black = ImageColorAllocate($im, 0, 0, 0); 
 $img = imagecreatefromjpeg("certificate.jpg");//replace with your image $txt = 'NILESH';//your text $fontFile = realpath("arial.ttf");//replace with your font $fontSize = 24; $fontColor = imagecolorallocate($img, 255, 255, 255); $black = imagecolorallocate($img, 0, 0, 0); $angle = 0; $iWidth = imagesx($img); $iHeight = imagesy($img); $tSize = imagettfbbox($fontSize, $angle, $fontFile, $txt); $tWidth = max([$tSize[2], $tSize[4]]) - min([$tSize[0], $tSize[6]]); $tHeight = max([$tSize[5], $tSize[7]]) - min([$tSize[1], $tSize[3]]); // text is placed in center you can change it by changing $centerX, $centerY values $centerX = CEIL(($iWidth - $tWidth) / 2); $centerX = $centerX 

Источник

imagettftext

Наносит текст text поверх изображения, используя TrueType шрифт.

Список параметров

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor() .

Размер шрифта. В зависимости от вашей версии GD, он должен быть указан либо в пикселах (GD1) либо в типографских пунктах (GD2).

Угол в градусах, 0 градусов означает расположение текста слева направо. Положительные значения означают поворот текста против часовой стрелки. Например, текст повернутый на 90 градусов нужно будет читать снизу вверх.

Координаты x и y определяют отправную точку для первого символа текста (конкретно, левый нижний угол символа). Здесь есть отличие от функции imagestring() , в которой x и y определяют верхний левый угол первого символа. Например, "верхний левый" имеет координаты 0,0.

y-координата. Это позиция базовой линии шрифта, в общем случае она не совпадает с низшей точкой в символе.

Индекс цвета. Использование отрицательных индексов создает эффект выключенного сглаживания. См. imagecolorallocate() .

Путь к файлу TrueType шрифта.

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

При использовании GD библиотеки версий младше 2.0.18 символ space (пробел), как и точка с запятой, использовался в качестве 'разделителя путей' для различных файлов шрифтов. При использовании этой возможности будет выдаваться предупреждение: Warning: Could not find/open font. Решением такой проблемы в этих версиях может быть только исключение пробелов из путей файлов.

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

// Задание переменной окружения для GD
putenv ( 'GDFONTPATH=' . realpath ( '.' ));

// Имя шрифта для использования (обратите внимание на отсутствие расширения .ttf)
$font = 'SomeFont' ;
?>

Текстовая строка в кодировке UTF-8.

Для доступа к символам после 127го можно использовать числовые ссылки (в формате: €). Также поддерживается шестнадцатеричный формат (©). Строки в кодировке UTF-8 можно передавать напрямую.

Именованные сущности, вроде ©, не поддерживаются. Используйте функцию html_entity_decode() , чтобы декодировать их в UTF-8 строки.

Если символ не поддерживается шрифтом, вместо него будет нарисован незакрашенный прямоугольник.

Возвращаемые значения

Возвращает массив из 8 элементов, представляющих 4 точки - координаты углов рамки обрамляющей текст. Точки представлены в таком порядке: левый нижний угол, правый нижний, верхний правый, верхний левый. Углы указаны относительно текста, то есть "верхний левый" означает верхний левый угол текста, если расположить его горизонтально. В случае ошибки функция вернет FALSE .

Список изменений

Версия Описание
5.2.0 Стало возможным задавать код сущности в тексте text шестнадцатеричным числом.

Примеры

Пример #1 Пример использования imagettftext()

В этом примере будет создано изображение PNG с белым фоном размером 400x30 пикселов и надписью "Тест. " черным цветом (с серой тенью) шрифтом Arial.

// Тип содержимого
header ( 'Content-Type: image/png' );

// Создание изображения
$im = imagecreatetruecolor ( 400 , 30 );

// Создание цветов
$white = imagecolorallocate ( $im , 255 , 255 , 255 );
$grey = imagecolorallocate ( $im , 128 , 128 , 128 );
$black = imagecolorallocate ( $im , 0 , 0 , 0 );
imagefilledrectangle ( $im , 0 , 0 , 399 , 29 , $white );

// Текст надписи
$text = 'Тест. ' ;
// Замена пути к шрифту на пользовательский
$font = 'arial.ttf' ;

// Тень
imagettftext ( $im , 20 , 0 , 11 , 21 , $grey , $font , $text );

// Текст
imagettftext ( $im , 20 , 0 , 10 , 20 , $black , $font , $text );

imagepng ( $im );
imagedestroy ( $im );
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagettftext()

Примечания

Замечание:

Для работы функции необходимо наличие установленных GD и » FreeType библиотек.

Смотрите также

Источник

Как нанести текст на изображение с помощью PHP?

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

Для начала приведу полный код скрипта, который хорошо прокомментирован:

А теперь я расскажу вам о некоторых его нюансах.

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. Расширение файла вы прописываете сами в зависимости от выбранной функции сохранения.

Ну вот, вроде, и все, что вам нужно знать, остальные моменты помечены в коде.

Часть «./» означает что чтение и сохранение файлов осуществляется в той папке, где находится ваш скрипт.

Если возникли вопросы – задавайте их в комментариях.

Источник

Как добавить текст на JPG-изображение

Первым делом следует проверить, подключена ли у вас GD library, используя функцию:

Итак, нам понадобится всего лишь три файла: pic.jpg — это картинка, которую мы хотим исписать текстом, index.php — файл с HTML-кодом, который будет показывать картинку, img.php будет содержать php-код, добавляющий текст.

Так, с картинкой всё понятно, а вот что будет находиться в index.php:

 $name = 'Михаил Рудрастых'; ?>  echo urlencode($name) ?>" alt="Php add text to image" />

А теперь самое интересное, img.php:

// наше изображение $img = ImageCreateFromJPEG("pic.jpg"); // определяем цвет, в RGB $color = imagecolorallocate($img, 255, 0, 0); // указываем путь к шрифту $font = 'arial.ttf'; $text = urldecode($_GET['name']); imagettftext($img, 24, 0, 365, 159, $color, $font, $text); // 24 - размер шрифта // 0 - угол поворота // 365 - смещение по горизонтали // 159 - смещение по вертикали header('Content-type: image/jpeg'); imagejpeg($img, NULL, 100);

Поддержка кириллицы будет зависеть от выбранного шрифта.

Вот и всё, функцию imagettftext() в файле можно использовать по несколько раз, меняя параметры.

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Источник

Читайте также:  Material design icon css
Оцените статью