Как из текста сделать картинку на PHP?

WhiteFalke
На сайте с 16.09.2007
Offline
184
6196

Ну вот интересует как это сделать малой кровью, без особых нагрузок на сервак, может кто то сталкивался?

[Удален]
#1

imagecreatetruecolor

imagettftext / imagechar

imagejpeg

в гугл.

Нагрузки незначительны

Mr.Joker
На сайте с 07.07.2008
Offline
19
#2

Вот кусок рабочего кода.

Описания функций найдёте на сайте PHP

$png=imagecreate(ширина,высота);
$bgc=imagecolorallocate($png,255,255,255);
$textc=imagecolorallocate($png,0,0,0);
imagestring($png,3,2,2,"ВАШ_ТЕКСТ",$textc);
header("content-type: image/png");
imagepng($png);
[Удален]
#3


<?php
Header("Content-type: image/gif");
$string=iconv('cp1251','utf-8//IGNORE',urldecode($_SERVER['QUERY_STRING'])); // строка
//$string=urldecode($_SERVER['QUERY_STRING']);
if(file_exists("cache/".md5($string)."_.gif"))
{
echo file_get_contents("cache/".md5($string)."_.gif");
exit;
}
$string1=$string11=trim($string);
$string2='';

switch($style_type) // предустановленные стили
{
default:
case(1): // Большой заголовок страницы

$font="Liana_Regular.ttf"; // шрифт

$size=25; // размер
$width=440; // общая ширина
$height=57; // общая высота

$wht= imagettfbbox ($size,0, $font, $string1);
if(($wht[2]-$wht[0])>$width){ // если текст не помещается в одну строку по ширине
$height=100;
$string1=substr($string1,0,strrpos($string1," "));
$string2=substr($string11,strrpos($string11," ")+1);
}
// цвет текста
$red=255;
$green=0;
$blue=0;

// цвет фона
$bg_red=255;
$bg_green=255;
$bg_blue=255;

break;
};

$im=imagecreatetruecolor($width,$height);

$color = imagecolorallocate($im, $red, $green, $blue);
$background_color = imagecolorallocate($im, $bg_red, $bg_green, $bg_blue);
$background_color = imagecolortransparent($im,$background_color);
imagefill ( $im, 0, 0, $background_color);
imagettftext($im, $size, 0, 0, $size+20, $color, $font, $string1);
if($string2!='')
imagettftext($im, $size, 0, 0, $size*2, $color, $font, $string2);

imagegif ($im,"cache/".md5($string)."_.gif",90);

imagegif ($im,"",90);

imagedestroy ($im);
exit(1);

Из одного старого проекта. Все картинки кешируются в папку cache, шрифт лежит в папке со скриптом. Далее можно настройить например лёгкий сервер типа nginx пытается взять из кеша картинку. Если её там нет, то передаёт апачу управление, который её создаёт.

Использовать скрипт так: http://site.tld/script.php?URL+закодированная+моя+строка

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий