From f6d90d8d3504fc1ba428da81e77c4484c4646f30 Mon Sep 17 00:00:00 2001 From: deva Date: Fri, 10 Oct 2008 20:26:15 +0000 Subject: Did some work on the forum parser. --- forum/htdocs/imagecache.php | 62 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 forum/htdocs/imagecache.php (limited to 'forum/htdocs') diff --git a/forum/htdocs/imagecache.php b/forum/htdocs/imagecache.php new file mode 100644 index 0000000..f23a51d --- /dev/null +++ b/forum/htdocs/imagecache.php @@ -0,0 +1,62 @@ + $maxwidth) $scale = $width / $maxwidth; + if($height / $scale > $maxheight) $scale = $height / $maxheight; + + $image_p = imagecreatetruecolor($width / $scale, $height / $scale); + imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width / $scale, $height / $scale, $width, $height); + + return $image_p; +} + + +$fullfilename = $IMAGECACHE . "/" . urlencode($filename); + +if(!file_exists($fullfilename)) { + + $url = parse_url($filename); + $filetype = strrchr($url["path"], '.'); + + if( true || ping($url["hostname"], 1000) != -1) { + + if(strcasecmp($filetype, ".jpeg") == 0 || strcasecmp($filetype, ".jpg") == 0) { + $image = imagecreatefromjpeg(urldecode($filename)); + if(!$image) die(404); + $image = rescale($image); + imagejpeg($image, $fullfilename, 90); + } else if(strcasecmp($filetype, ".gif") == 0) { + $image = imagecreatefromgif(urldecode($filename)); + if(!$image) die(404); + $image = rescale($image); + imagegif($image, $fullfilename); + } else if(strcasecmp($filetype, ".png") == 0) { + $image = imagecreatefrompng(urldecode($filename)); + if(!$image) die(404); + $image = rescale($image); + imagepng($image, $fullfilename); + } else { + echo "

Unknown image format " . $filetype . "

"; + } + + } +} + +header('Content-Description: File Transfer'); +header('Content-Type: image/jpeg'); +header('Content-Length: ' . filesize($fullfilename)); +header('Content-Disposition: inline; filename=' . basename($filename)); +readfile($fullfilename); + +?> \ No newline at end of file -- cgit v1.2.3