$destdate)) { $imgsize = GetImageSize($source); $width = $imgsize[0]; $height = $imgsize[1]; # error_log("dispsize is : $dispsize"); if ($dispsize != 'Original') { if ($width > $height) { $new_width = $dispsize; $new_height = ceil($dispsize * $height / $width); } else { $new_height = $dispsize; $new_width = ceil($dispsize * $width / $height); } } # error_log("Reported: Width: $width, Height: $height", 0); if ($width == 0) { # Can't really scale a zero-width image... # XXX: have this display an icon for the file type error_log("### Zero width file!"); return -1; } if ($ImageTool == "int") { if (preg_match("/\.jp(g|eg)$/i",$source)) { # disable errors in case of invalid image $error = error_reporting(0); $im = ImageCreateFromJPEG($source); error_reporting($error); if (!$im) { # problem reading the file return -1; } $new_im = ImageCreate($new_width,$new_height); ImageCopyResized($new_im,$im,0,0,0,0,$new_width,$new_height,ImageSX($im),ImageSY($im)); # Check if the directories are there checkdir("$cache_base/$album"); ImageJPEG($new_im,$dest,75); } elseif (preg_match("/\.gif$/i",$source)) { # disable errors in case of invalid image $error = error_reporting(0); $im = ImageCreateFromGIF($source); error_reporting($error); if (!$im) { # problem reading the file return -1; } $new_im = ImageCreate($new_width,$new_height); ImageCopyResized($new_im,$im,0,0,0,0,$new_width,$new_height,ImageSX($im),ImageSY($im)); # Check if the directories are there checkdir("$cache_base/$album"); ImageJPEG($new_im,$dest,75); } elseif (preg_match("/\.png$/i",$source)) { # disable errors in case of invalid image $error = error_reporting(0); $im = ImageCreateFromPNG($source); error_reporting($error); if (!$im) { # problem reading the file return -1; } $new_im = ImageCreate($new_width,$new_height); ImageCopyResized($new_im,$im,0,0,0,0,$new_width,$new_height,ImageSX($im),ImageSY($im)); # Check if the directories are there checkdir("$cache_base/$album"); ImageJPEG($new_im,$dest,75); } else { return -1; } } elseif ($ImageTool == "ext") { # error_log("New width: $new_width, New height: $new_height"); $newalbum = $album; exec("$convert $new_width $new_height \"$cache_base\" \"$newalbum\" \"$source\" \"$dest\" 2>&1"); # error_log("$convert $new_width $new_height \"$cache_base\" \"$newalbum\" \"$source\" \"$dest\" 2>&1"); } if (!file_exists($dest)) { error_log("### Dest file not found."); return -1; } } } if ($album == "NONE") { $file = "$scriptbase/$pic"; } else { $file = "$realpixbase$album/$pic"; } if (preg_match("/\.jp(g|eg)$/i",$file)) { $type = "jpeg"; } elseif (preg_match("/\.gif$/i",$file)) { $type = "gif"; } elseif (preg_match("/\.png$/i",$file)) { $type = "png"; } # error_log("Type: $type Image: $file", 0); if (($dispsize != "Original") && ($album != "NONE")) { $destpic = "${pic}__scaled_${dispsize}.jpg"; $destfile = $cache_base."/".$usercachebase.$album."/".$destpic; # error_log("File: $file, Dest: $destfile", 0); $ret = CreateImage($width, $height, $file, $destfile); if ($ret == -1) { error_log("Didnt recognise $file in showpic.php"); } else { $file = $scriptbase.$destfile; } } clearstatcache(); $fileinfo = stat($file); $lastmodified = $fileinfo[10]; $headers = getallheaders(); #while (list ($header, $value) = each ($headers)) { # error_log("$header: $value
\n"); #} $if_modified_since = $headers["If-Modified-Since"]; $lastmtext = gmdate("D, d M Y H:i:s", $lastmodified) . "GMT"; error_log("IMS: $if_modified_since, LMT: $lastmtext"); if ($lastmtext == $if_modified_since) { Header("HTTP/1.1 304 Not Modified"); error_log("Reported file as not modified since last download"); } else { Header("Content-type: image/$type"); Header("Last-Modified: " . $lastmtext); error_log("Sending: $file"); readfile($file); } ?>