Генератор картинки с первой буквой имени by Al-Sher
2#: Вставьте в этот файл следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
if(isset($_GET["nick"])) { // Получаем GET запрос $_GET['nick'] = strtoupper(substr($_GET['nick'],0,1)); // Вытаскиваем первый символ строки, а так же делаем букву заглавной $image = imagecreatetruecolor(150, 150); // Создаем изображение размером 150x150 $color = imagecolorallocate($image, 255, 255, 255); // Задаем цвет для будущего текста $bg1=array(77,77,255,255,255,219); // Создаем массив цветов $bg2=array(148,113,113,172,148,77); // Создаем массив цветов $bg3=array(219,219,148,197,77,77); // Создаем массив цветов $rand=rand(0,count($bg1)-1); // Генерируем случайный цвет $white=imagecolorallocate($image, $bg1[$rand], $bg2[$rand], $bg3[$rand]); // Создаем цветной фон imagefilledrectangle($image, 0, 0, 9999, 9999, $white); // Заливаем его до положения 9999x9999(чтобы при увеличении изображения цвет накладывался на всю картинку) imagettftext ($image, 100, 0, 32, 123, $color, "/css/Roboto-Regular.ttf", $_GET['nick']); // Пишем текст header("Content-type: image/png"); // Передаем заголовок imagepng($image); // Показываем картинку } else { $image = imagecreatetruecolor(150, 150); $color = imagecolorallocate($image, 255, 255, 255); $bg1=array(77,77,255,255,255,219); $bg2=array(148,113,113,172,148,77); $bg3=array(219,219,148,197,77,77); $rand=rand(0,count($bg1)-1); $white=imagecolorallocate($image, $bg1[$rand], $bg2[$rand], $bg3[$rand]); imagefilledrectangle($image, 0, 0, 9999, 9999, $white); imagettftext ($image, 80, 0, 0, 113, $color, "/css/Roboto-Regular.ttf","NO"); header("Content-type: image/png"); imagepng($image); } |
3#: Для того, чтобы получить картинку с буквой ника, просто перейдите по ссылке: http://сайт.ру/путь_до_скрипта?nick=Ник_пользователя Осталось лишь залить TTF файл из прикреплённого архива в папку css P.S. Я попытался полностью прокомментировать данный код и надеюсь все всё поймут 🙂 P.S. Шрифт использовался Roboto-Regular.ttf и не рекомендую его менять, так как при смене шрифта, скорее всего, придется менять положение для текста
Спасибо, крутой материал! Как это использовать, например, в WordPress?
Данный скрипт генерирует картинку, причем, чтобы цвет не изменился, необходимо сохранить картинку на сервере, или оставить в массивах цветов по одному значению.
Для получения изображения нужно обратиться к адресу: http://сайт.ру/путь/до/скрипта?nick=Ник_пользователя
Например: http://git.web-wost.ru/MaterialSquare.php?nick=Al-Sher
ОК, понял, спасибо 🙂 С кириллицей работает?
нет, к сожалению
А если использовать другой шрифт с поддержкой кириллицы, скрипт сможет нормально интерпретировать букву?
Apocalypse, можно, если заменять кодировку в windows-1251, а после обрезания обратно в utf-8
для этого надо заменить:
На:
P.S. Ошибся я со шрифтом, этот тоже поддерживает нормально кириллицу 🙂
И зачем такие извращения? Для обрезания строки в UTF8 (где один символ занимает 2 байта, а не 1, как в win1251) есть функция mb_substr (https://secure.php.net/manual/ru/function.mb-substr.php)
И никаких конвертаций не надо 🙂
И да - не надо переопределять переменные в $_GET. Из $_GET и $_POST лучше только считывать значения, но не добавлять или изменять их прямо в массиве.
Про mb_substr не знал(или забыл), спасибо)
Насчет переопределения $_GET и $_POST. Я их переопределяю только в небольших скриптах, в которых получил данные и сразу же выдал, почти без обработки) В основном, когда я проверяю эти данные, я им даю новые переменные