note 61766 added to ref.image
| From: | sean at dioxide dot be | Date: | Sat, 11 Feb 2006 07:27:42 +0000 |
| Subject: | note 61766 added to ref.image | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-103492@lists.php.net to get a copy of this message | ||
I have a script that generates an image for me to use on forums and the like which has information
from a XML feed that I parse to get information to write on the sig.
However I need to cache some images (about 3-5 minute cache) to prevent my bandwidth being zapped by
it.
Here is the code:
<?php
if($data = file_get_contents("http://bot2k3.net/api/mirrors.php?full"))
{
if($xml = xml_parser_create()) {
/* Use XML parser */
if(xml_parse_into_struct($xml, $data, $values, $indexes)) { $online =
$values[$indexes["ONLINE" ][0]]["value"];
$mirrors = $values[$indexes["MIRRORS"][0]]["value"];
$users = $values[$indexes["USERS"][0]]["value"];
$uptime = $values[$indexes["UPTIME"][$k ]]["value"]; /* Loop over indexes
later */
$monline = "Mirrors online: " . $online . "/" . $mirrors;
$uadded = "Total users since launch: " . $users;
}
}
} else { echo "couldnt retrieve page"; }
// declare variables
$width = 600; $height = 120;
$fontpath = "frizqt.ttf";
$addfont = "frizqt.ttf";
$bgjpg = "background.jpg"; $iconpng = "http://bot2k3.net/images/avatars/Current.imk.png";
// create a new image and allocate the colors we will use
$im = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($im, 255, 255, 255);
$fontcolor = imagecolorallocate($im, 15, 15, 15);
// fill the canvas with white
imagefill($im, 0, 0, $white);
// open our background image
$bg = imagecreatefromjpeg($bgjpg);
// copy enough of the background image onto the canvas so that it is entirely covered
// we only want the copied background to have 60% opacity
imagecopymerge($im, $bg, 0, 0, 0, 0, $width, $height, 100);
// close the background image
imagedestroy($bg);
// open our icon image
$icon = imagecreatefrompng($iconpng);
// copy the entire icon image onto our canvas (at the vertical center)
imagecopy($im, $icon, 20, $height/2 - imagesy($icon)/2, 0, 0, imagesx($icon), imagesy($icon));
// render the sample text next to the icon
imagettftext($im, 14, 0, 40 + imagesx($icon), 25, $fontcolor, $fontpath, "BOT2K3 Stats");
imagettftext($im, 12, 0, 40 + imagesx($icon), 50, $fontcolor, $fontpath, $monline);
imagettftext($im, 12, 0, 40 + imagesx($icon), 75, $fontcolor, $fontpath, $uadded);
imagettftext($im, 7, 0, 40 + imagesx($icon), 100, $fontcolor, $addfont, $list1 . " " .
$list2);
imagettftext($im, 5, 0, 420, 115, $fontcolor, $fontpath, "BUILD 2a :: powered by
www.bot2k3.net");
// close the icon image
imagedestroy($icon);
// draw a border around the image
imagerectangle($im, 0, 0, $width-1, $height-1, $fontcolor);
imageinterlace($im, 1);
// we are done; output the image as a PNG
header("Content-Type: image/png");
imagepng($im);
imagedestroy($im);
?>
If someone would like to help me implement a cache for this script, please contact me on my email or
on msn (same address)
Thanks :)
----
Server IP: 203.114.129.125
Probable Submitter: 218.101.64.87
----
Manual Page -- http://www.php.net/manual/en/ref.image.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+61766
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+61766&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+61766&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+61766&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+61766&report=yes&reason=useless
Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+61766&report=yes&reason=non-english
Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+61766&report=yes&reason=already+in+docs
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+61766&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+61766&report=yes
Search -- http://master.php.net/manage/user-notes.php