Рисуем красивые заголовки с помощью библиотеки gd PHP

14 дек. 2009 г. | | |

Как сделать красивый заголовок для статьи, например, рукописным текстом? Для одной статьи или, если их немного, можно посидеть в фотошопе и сделать заголовки. А если статей много и добавляются они регулярно - замучаешься сидеть в фотошопе!
В php есть чудная библиотека для работы с графикой, зовется gd. Ее функционалом мы и воспользуемся для решения поставленной задачи.
Сразу скажу, дабы избежать проблем с кириллицей, используйте шрифты, поддерживающие кириллицу!
А теперь начнем. Сперва создадим php-скрипт, который будет создавать чудный заголовок. В качестве параметра методом get мы будем передавать нашему скрипту текст заголовка.

<?php
#говорим браузеру, что далее будет картинка в формате png
header('Content-type: image/png');

if (isset($_GET['text']))
{
$text = rawurldecode(htmlspecialchars($_GET['text']));
}else $text = 'Without caption';
#ширина одной буквы выбранного текста
$letterwidth=12;
#ширина всей картинки
$width=$letterwidth*strlen($text);
#указываем путь к шрифту
$font = 'fonts/cyr.ttf';
#создаем картинку
$im = imagecreatetruecolor($width, 40);
#определяем цвета
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 113, 129, 152);
#закрашиваем фон
imagefilledrectangle($im, 0, 0, 999, 40, $white);
#пишем текст
imagettftext($im, 30, 0, 10, 30, $black, $font, $text);
#выдаем браузеру готовую картинку
imagepng($im);
#освобождаем ресурсы
imagedestroy($im);
?>
Думаю, что более комментировать скрипт не нужно. Теперь вместо заголовка статьи пишем

<img src="caption.php?text=Заголовок для статьи" alt="" />

Вот и все :)
Скрипт в работе вы можете увидеть тут
Скачать исходник вы можете тут

0 коммент.:

Отправить комментарий