Пример №1
Наложение текста поверх рисунка
- Код: Выделить всё • Развернуть
<?php
// указываем что это рисунок
header("Content-type: image/png");
// Текст который будет наложен на рисунок
$string = "Hello!";
// рисунок на который будет наложен текст
$im = imagecreatefrompng("images/button1.png");
// цвер этого текста
$orange = imagecolorallocate($im, 220, 210, 60);
// ставим нужный размер шрифта в зависимости от размера картинки
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
// рисуем всё это безобразие !)
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);
?>
Пример простейший и подходит допустим для кнопок на сайте.
Если вместо
$string = "Hello!";
указать это
$string = $_GET['text'];
то тогда добиться нужной фразы на картинке можно вставив следующий код в html страницу
<img src="image.php?Hello!">
это с учётом что PHP и HTML файл находятся в одной папке и код записан в image.php
Пример №2
Создание рисунка
- Код: Выделить всё • Развернуть
<?php
// указываем что это рисунок
header("Content-type: image/png");
// создаём пустой рисунок с разрешением 100х200
$im = imagecreatetruecolor(100, 200);
// сделаем несколько переменных чтоб потом указать нужный цвет
$grey = imagecolorallocate($im, 100, 100, 100);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
// делаем белый фон
imagefilledrectangle($im, 0, 0, 100, 200, $white);
// текстнакартинке
$text = 'Hello!';
// путь к Файлу шрифта
$font1 = './arialbi.ttf';
// рисуем текст на рисунке imagettftext($im[ID рисунка], 12[размер шрифта], 0[поворот текста], 11[X положение], 12[Y положение], [цвет]$black, $font1[шрифт], $text[текст]);
imagettftext($im, 12, 0, 11, 22, $black , $font1, $text);
// показываем всё это безобразие !)
imagepng($im);
imagedestroy($im);
?>
Этот способ лучше в нём можно использовать абсолютно любой шрифт и размер
Для тех у кого есть вопросы по поводу того что фраза тип "Нах English" отображается через одно место есть функция iconv();
Она приведет кодировку в порядок и избавит от проблемы.
$text=iconv("Windows-1251", "UTF-8", $text);
если вставить это в код после "$text = 'Hello!';" то всё будет в норме .
PS эта функция работает не у всех !если у кого то установлен Denver тотам она не работает 100% !
Возможно далее будет написан пример графического счётчика !