
Zasláno: čt 29. prosinec 2005 15:15
romulus napsal: Pánové co řešíte? Není problém napsat <img src="skript.php"> a skript bude vracet aktuálně vygenerovaný obrázek. Takže na co server s velkou návštěvností?
Vracet obrázek může buď odesláním HTTP hlavičky (content-type=image/gif) nebo přesměrováním na obrázek (header('Location: obrazek.gif')).
jj, to znam to bude nejlepsi reseni

Zasláno: čt 29. prosinec 2005 16:13
Dovolil sem si napsat jednoduchy skript. Je tam teda problem s cestinou - je to hlavne podle pouziteho fontu, a hlavne jestli na serveru jsou nejake ttf fonty. pokud jo, je mozne pouzit prakticky jakykoli font...
kód: <?
/*
================================
ImageText
by Maňas (c) 2005 :)
exclusive for MAOrh
================================
VSTUPNI PROMENNE
$src = zdroj obrázku
$barva = pole (r,g,b);
*/
// konfigurace
$velikost = "14"; //velikost pisma v px
$leve_odsazeni = "15"; // odsazeni od leveho kraje v px
$spodni_odsazeni = "5"; // odsazeni od spodniho okraje v px
// hlášky
$hlasky = array("vysemnesmite.cz", "siemensmania.cz", "javamania.cz");
// info o zdrojovém obrázku
$zdroj = getimagesize($src);
// typ obrázku GIF/JPEG/PNG
switch($zdroj[2]):
case 1:
$typ = "gif";
break;
case 2:
$typ = "jpeg";
break;
case 3:
$typ = "png";
break;
endswitch;
// hlavicka
header("Content-type: image/$typ");
// vytvoření obrázku
eval("\$obrazek = @imagecreatefrom$typ(\$src);");
// barva písma
$pismo = imagecolorallocate ($obrazek, $barva[0], $barva[1], $barva[2]);
// zápis textu
imagettftext ($obrazek, $velikost, 0, $leve_odsazeni, $zdroj[1] - $prave_odsazeni, $pismo, "arial", $hlasky[rand(0, count($hlasky)-1)]); //místo "arial" lze zadat ttf font
// výstup obrázku
eval("image$typ(\$obrazek);");
?>
na obrazek se potom odkazuje
/xxx.php?src=[obrazek gif/jpg/png libovolnych rozmeru]
&barva[]=[cislo
cervena rgb]
&barva[]=[cislo
zelena rgb]
&barva[]=[cislo
modra rgb]
například
citace: obrazek.php?src=obrazek.gif&barva[]=10&barva[]=10&barva[]=10
výsledkem tohoto je sedy napis na spodnim okraji obrazku obrazek.gif. prepokladem je uzpusobeni zdrojveho obrazku napisu (nejaky prouzek aby to dobre vypadalo)
doufam ze tam neni chyba :)
// edit : prepokladem sou povolene "register_globals"!