Center text on image php

Как выровнять текст на изображении (PHP)

На генерируемых, средствами PHP (GDLib), изображениях часто приходится выводить текст. Иногда этот текст нужно выравнивать по-центру, от какой-либо точки или по правому краю. Размер текста, как правило, разного размера, поэтому необходимо выяснить размер текста в пикселях и отнять от точки вывода текста.

Список функций

Основные функции, которые понадобятся для выравнивания текста:

imagettfbbox

array imagettfbbox(float size, float angle, string fontfile, string text) — функция возвращает массив координат прямоугольника в который можно строго вписать надпись string text , размером float size , с наклоном float angle и шрифтом string fontfile .

imagettftext

array imagettftext(resource image, float size, float angle, int x, int y, int color, string fontfile, string text) — функция вывода текста на изображение.

Пример-решение

На примере выведем текст относительно вертикальной линии. По левому краю, по центру и по правому соответственно.

Результат

Выравнивание текст на изображение (PHP)

Категории

Читайте также

  • Узнать цвет пикселя изображения (PHP)
  • Как получить высоту изображения (PHP)
  • Как получить ширину изображения (PHP)
  • Превью в виде квадрата (PHP)
  • Как нарисовать линию (PHP)
  • Как нарисовать круг (PHP)
  • Наложение логотипа (PHP)
  • Как нарисовать прямоугольник (PHP)
  • Как нарисовать эллипс (PHP)
  • Как обновить CDATA (PHP)
  • Singleton Trait (PHP)
  • Редирект (PHP)
Читайте также:  Css button hidden text

Комментарии

Вход на сайт

Введите данные указанные при регистрации:

Социальные сети

Вы можете быстро войти через социальные сети:

Источник

Как выровнять текст на изображении (PHP)

На генерируемых, средствами PHP (GDLib), изображениях часто приходится выводить текст. Иногда этот текст нужно выравнивать по-центру, от какой-либо точки или по правому краю. Размер текста, как правило, разного размера, поэтому необходимо выяснить размер текста в пикселях и отнять от точки вывода текста.

Список функций

Основные функции, которые понадобятся для выравнивания текста:

imagettfbbox

array imagettfbbox(float size, float angle, string fontfile, string text) — функция возвращает массив координат прямоугольника в который можно строго вписать надпись string text , размером float size , с наклоном float angle и шрифтом string fontfile .

imagettftext

array imagettftext(resource image, float size, float angle, int x, int y, int color, string fontfile, string text) — функция вывода текста на изображение.

Пример-решение

На примере выведем текст относительно вертикальной линии. По левому краю, по центру и по правому соответственно.

Результат

Выравнивание текст на изображение (PHP)

Категории

Читайте также

  • Узнать цвет пикселя изображения (PHP)
  • Как получить высоту изображения (PHP)
  • Как получить ширину изображения (PHP)
  • Превью в виде квадрата (PHP)
  • Как нарисовать линию (PHP)
  • Как нарисовать круг (PHP)
  • Наложение логотипа (PHP)
  • Как нарисовать прямоугольник (PHP)
  • Как нарисовать эллипс (PHP)
  • Как обновить CDATA (PHP)
  • Singleton Trait (PHP)
  • Редирект (PHP)

Комментарии

Вход на сайт

Введите данные указанные при регистрации:

Социальные сети

Вы можете быстро войти через социальные сети:

Источник

Выравнивание текста по центру в PHP GD

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

Вывод текста по центру изображения

Изображение-подложка bg.png

$filename = __DIR__ . '/bg.png'; $info = getimagesize($filename); switch ($info[2]) < case 1: $img = imageCreateFromGif($filename); break; case 2: $img = imageCreateFromJpeg($filename); break; case 3: $img = imageCreateFromPng($filename); break; >$width = $info[0]; $height = $info[1]; $text = '123456'; $font = __DIR__ . '/Helvetica.ttf'; $font_size = 30; $font_color = imagecolorallocate($img, 255, 255, 255); $box = imageftbbox($font_size, 0, $font, $text); $x = ($width - $box[4]) / 2; $y = ($height - $box[5]) / 2; imagettftext($img, $font_size, 0, $x, $y, $font_color, $font, $text); switch ($info[2]) < case 1: header('Content-Type: image/gif'); imageGif($img); break; case 2: header('Content-Type: image/jpeg'); imageJpeg($img, 100); break; case 3: header('Content-Type: image/x-png'); imagePng($img); break; >imagedestroy($img); exit();

Результат:

Выравнивание текста по центру в PHP GD

Вывод изображения по центру блока

Вывод изображения по центру блока

$filename = __DIR__ . '/bg-2.png'; $info = getimagesize($filename); switch ($info[2]) < case 1: $img = imageCreateFromGif($filename); break; case 2: $img = imageCreateFromJpeg($filename); break; case 3: $img = imageCreateFromPng($filename); break; >// Размер рамки и смещение $border_width = 300; $border_height = 80; $ofset_top = 100; $ofset_left = 60; $text = '123456'; $font = __DIR__ . '/Helvetica.ttf'; $font_size = 30; $font_color = imagecolorallocate($img, 0, 0, 0); $box = imageftbbox($font_size, 0, $font, $text); $offset = ($box[2] - $box[0]) / 2; $x = ($border_width / 2) - $offset + $ofset_left; $offset = ($box[5] - $box[1]) / 2; $y = ($border_height / 2) - $offset + $ofset_top; imagettftext($img, $font_size, 0, $x, $y, $font_color, $font, $text); switch ($info[2]) < case 1: header('Content-Type: image/gif'); imageGif($img); break; case 2: header('Content-Type: image/jpeg'); imageJpeg($img, 100); break; case 3: header('Content-Type: image/x-png'); imagePng($img); break; >imagedestroy($img); exit();

Источник

Наложение текста на изображение по центру на php

Наложение текста на картинку при помощи php не такая уж и сложная задача, главное разобраться с функцией imagettftext(), которая имеет ряд параметров:

Описание

  • Фон или фотка = imagecreatefromjpeg(«images/img.jpg») — (в нашем случае это изображение)
  • Размер шрифта = 22 — 22px
  • Угол наклона = 30 — 30 градусов наклон надписи
  • Координат оп оси Y = 200 — 200 пикселей отступ сверху
  • Координат оп оси X = 100 — 100 пикселей отступ слева
  • Цвет шрифта = imageColorAllocate(‘Фон или фотка’, 255, 255, 255) — возвращает идентификатор цвета, представляющий цвет, составленный из данных RGB-компонентов.
  • Путь к файлу со шрифтом = «fonts_capcha/tahoma.ttf» — тут все понятно
  • Любой текст = ‘Тект который мы будем накладывать на фотку’

Код php наложения текста

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

Обводка на текст при помощи php создается очень просто — нужно всего лишь создать такие же текста функцией imagettftext(), но на 1,2 пикселя смещая координаты.

$imgage_path = "images/img.jpg"; //Путь к изображению $text = $_GET['text']; //Забираем тест, который мы написали $img = imagecreatefromjpeg($imgage_path); // создаём новое изображение из файла $font = "fonts_capcha/tahoma.ttf"; // путь к шрифту $font_size = 22; // размер шрифта $color = imageColorAllocate($img, 255, 255, 255); //Цвет шрифта $shadow = imageColorAllocate($img, 0, 0, 0); // цвет обводки (черный цвет) $size=getimagesize($imgage_path); //Узнаем размер изображения $w=(int)$size[0]; // ширина $h=(int)$size[1]; // высота // текст по центру $box = imagettfbbox($font_size, 0, $font, $text); $x = ($w/2)-($box[2]-$box[0])/2; //по оси x $y = ($h/2)-($box[3]-$box[5])/2; //по оси y //Обводка imagettftext($img, $font_size, 0, $x+2, $y, $shadow, $font, $text); imagettftext($img, $font_size, 0, $x-2, $y, $shadow, $font, $text); imagettftext($img, $font_size, 0, $x, $y+2, $shadow, $font, $text); imagettftext($img, $font_size, 0, $x, $y-2, $shadow, $font, $text); imagettftext($img, $font_size, 0, $x+1, $y, $shadow, $font, $text); imagettftext($img, $font_size, 0, $x-1, $y, $shadow, $font, $text); imagettftext($img, $font_size, 0, $x, $y+1, $shadow, $font, $text); imagettftext($img, $font_size, 0, $x, $y-1, $shadow, $font, $text); //Разметка самого текста imagettftext($img, $font_size, 0, $x, $y, $color, $font, $text); header("Content-type: image/png"); imagepng($img); imagedestroy($img);

Наложение текста по центру

imagettfbbox() возвращает массив из 8 элементов, представляющих 4 точки, образующие бокс текста:

0- нижний левый угол, X-позиция
1- нижний левый угол, Y-позиция
2- нижний правый угол, X-позиция
3- нижний правый угол, Y-позиция
4- верхний правый угол, X-позиция
5- верхний правый угол, Y-позиция
6- верхний левый угол, X-позиция
7- верхний левый угол, Y-позиция

Разметка на html

Разметку мы делаем для наглядного примера и удобного теста.

Источник

Оцените статью