diff options
Diffstat (limited to 'phpfspot.class.php')
-rw-r--r-- | phpfspot.class.php | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/phpfspot.class.php b/phpfspot.class.php index 5df3115..641cc0e 100644 --- a/phpfspot.class.php +++ b/phpfspot.class.php @@ -8,6 +8,7 @@ class PHPFSPOT { var $cfg; var $db; + var $cfg_db; var $tmpl; var $tags; var $avail_tags; @@ -17,7 +18,8 @@ class PHPFSPOT { { $this->cfg = new PHPFSPOT_CFG; - $this->db = new PHPFSPOT_DB(&$this, $this->cfg->db); + $this->db = new PHPFSPOT_DB(&$this, $this->cfg->fspot_db); + $this->cfg_db = new PHPFSPOT_DB(&$this, $this->cfg->phpfspot_db); $this->tmpl = new PHPFSPOT_TMPL($this); $this->get_tags(); @@ -275,6 +277,58 @@ class PHPFSPOT { } // showCredits() + public function resize_image($image, $width) + { + // if thumbnail already exists, don't recreate it + if(file_exists(dirname($image) ."/thumbs/". $width ."_". basename($image))) + return; + + $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() + } ?> |