X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=phpfspot.git;a=blobdiff_plain;f=phpfspot_img.php;h=052a45f4099c686bdc0cd561cf482ce6ee8ded90;hp=3a2a322d4cebc03e5bfa52c88d9970fcda187539;hb=cac16f3332944390250a2a2fcd460bef818a65a5;hpb=61f2970e221f8612e51e7802cc127819c4caa369 diff --git a/phpfspot_img.php b/phpfspot_img.php index 3a2a322..052a45f 100644 --- a/phpfspot_img.php +++ b/phpfspot_img.php @@ -1,6 +1,5 @@ parent->get_photo_details($idx); + + if(!$details) { + $this->parent->showTextImage("The image you requested is unknown"); + return; + } - foreach(Array($this->parent->cfg->thumb_width, $this->parent->cfg->photo_width) as $resolution) - $this->resize_image($this->parent->translate_path($details['directory_path']) ."/". $details['name'], $resolution); - - if($width == "") + /* show original photo */ + if($width == 0) { $fullpath = $this->parent->translate_path($details['directory_path']) ."/". $details['name']; - else - $fullpath = $this->parent->translate_path($details['directory_path']) ."/thumbs/". $width ."_". $details['name']; + } + /* show thumbnail */ + else { + $fullpath = $this->parent->cfg->base_path ."/thumbs/". $width ."_". $this->parent->getMD5($idx); + if(!file_exists($fullpath)) + $this->parent->gen_thumb($idx, 0, 1); + } + if(!file_exists($fullpath)) { + $this->parent->showTextImage("File ". $fullpath ." does not exist"); + return; + } + if(!is_readable($fullpath)) { + $this->parent->showTextImage("File ". $fullpath ." is not readable. Check the permissions"); + return; + } $tmp = getimagesize($fullpath); $mime = $tmp['mime']; + if(!$this->parent->checkifImageSupported($mime)) { + $this->parent->showTextImage("Unsupported Image Type"); + return; + } + Header("Content-Type: ". $mime); Header("Content-Length: ". filesize($fullpath)); Header("Content-Transfer-Encoding: binary\n"); - $user_agent = strtolower ($_SERVER["HTTP_USER_AGENT"]); Header("Content-Disposition: inline; filename=\"". $details['name'] ."\""); Header("Accept-Ranges: bytes"); Header("Connection: close"); @@ -50,53 +69,6 @@ class PHPFSPOT_IMG { } // show() - public function resize_image($image, $width) - { - $src_img = @imagecreatefromjpeg($image); - - if($src_img) - { - /* grabs the height and width */ - $new_w = imagesx($src_img); - $new_h = imagesy($src_img); - - // If requested width is more then the actual image width, - // do not generate a thumbnail - - if($width >= $new_w) { - imagedestroy($src_img); - return; - } - - /* calculates aspect ratio */ - $aspect_ratio = $new_h / $new_w; - - /* sets new size */ - $new_w = $width; - $new_h = abs($new_w * $aspect_ratio); - - /* creates new image of that size */ - $dst_img = imagecreatetruecolor($new_w,$new_h); - - imagefill($dst_img, 0, 0, ImageColorAllocate($dst_img, 255, 255, 255)); - - /* copies resized portion of original image into new image */ - imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); - - /* write down new generated file */ - - if(!file_exists(dirname($image) ."/thumbs")) - mkdir(dirname($image) ."/thumbs"); - - $newfile = dirname($image) ."/thumbs/". $width ."_". basename($image); - imagejpeg($dst_img, $newfile, 75); - - /* free your mind */ - imagedestroy($dst_img); - imagedestroy($src_img); - } - - } // resize_image() } if(isset($_GET['idx']) && is_numeric($_GET['idx'])) {