Php gd вирівнювання багаторядкового тексту

Ми вже розглядали в статті «PHP GD перенесення рядка довгого тексту» проблему автоматичного перенесення рядків, але що якщо текст нам потрібно розмістити по середині заданої області, тобто відцентрувати. Не завжди ж текст розташовується притиснутим до лівої частини. А може нам знадобиться текст вирівняти по правому краю, як тоді бути?

Html засобами зробити це просто, а як розмістити текст на зображенні по центру або притиснутим в право засобами PHP GD?

// Прописуємо заголовок PNG-зображення

Поки писав цю статтю прийшла на думку ідея, як зробити вирівнювання тексту по ширині засобами PHP GD.

  1. Все те ж саме, як і в статті PHP GD перенесення рядка довгого тексту. але не відразу наносимо рядки на картинку.
  2. Спершу розбиваємо рядок на масив слів, обчислюємо ширину слів, виходячи з цього отримуємо ширину пробілів (ширина області під текст - мінус ширина слів, розділимо на кількість прогалин). Прогалин менше ніж слів на 1. Ширину слів можна обчислити, виходячи з суми ширини кожного слова, але я б зробив простіше, прибрав з рядка всі пробільні символи і обчислив ширину рядка без пробілів.
  3. Нанесення тексту на картинку робимо пословно, розраховуючи зміщення з урахуванням Пробільні ширини.

Хлопці, прошу вас поважати чужу працю!

При копіюванні даного матеріалу, дайте посилання на джерело, це не складно ..

Дякуємо! Те що потрібно. Є ще питання. Якщо у мене шрифт інший і іншого розміру, то що вказувати в $ height_tmp = $ height_tmp + 19 ;? Замість 19 підібрати інше число?

Схожі статті