summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpfspot.class.php40
-rw-r--r--phpfspot_img.php4
2 files changed, 20 insertions, 24 deletions
diff --git a/phpfspot.class.php b/phpfspot.class.php
index 06ded52..0fa1740 100644
--- a/phpfspot.class.php
+++ b/phpfspot.class.php
@@ -119,7 +119,7 @@ class PHPFSPOT {
$details = $this->get_photo_details($photo);
$orig_path = $this->translate_path($details['directory_path']) ."/". $details['name'];
- $thumb_path = $this->translate_path($details['directory_path']) ."/thumbs/". $this->cfg->photo_width ."_". $details['name'];
+ $thumb_path = $this->cfg->base_path ."/thumbs/". $this->cfg->photo_width ."_". $this->getMD5($photo);
/* If the thumbnail doesn't exist yet, try to create it */
if(!file_exists($thumb_path)) {
@@ -422,12 +422,12 @@ class PHPFSPOT {
} // showCredits()
- public function create_thumbnail($image, $width)
+ public function create_thumbnail($orig_image, $thumb_image, $width)
{
- if(!file_exists($image))
+ if(!file_exists($orig_image))
return false;
- $meta = $this->get_meta_informations($image);
+ $meta = $this->get_meta_informations($orig_image);
$rotate = 0;
$flip = false;
@@ -452,10 +452,10 @@ class PHPFSPOT {
$rotate = 270; $flip = false; break;
}
- $src_img = @imagecreatefromjpeg($image);
+ $src_img = @imagecreatefromjpeg($orig_image);
if(!$src_img) {
- print "Can't load image from ". $image ."\n";
+ print "Can't load image from ". $orig_image ."\n";
return false;
}
@@ -479,7 +479,7 @@ class PHPFSPOT {
$new_h = abs($new_w * $aspect_ratio);
/* creates new image of that size */
- $dst_img = imagecreatetruecolor($new_w,$new_h);
+ $dst_img = imagecreatetruecolor($new_w, $new_h);
imagefill($dst_img, 0, 0, ImageColorAllocate($dst_img, 255, 255, 255));
@@ -501,24 +501,14 @@ class PHPFSPOT {
}
/* write down new generated file */
-
- if(!file_exists(dirname($image) ."/thumbs")) {
- $result = mkdir(dirname($image) ."/thumbs");
- if($result === false) {
- print "Can't create thumb directory ". dirname($image) ."/thumbs\n";
- return false;
- }
- }
-
- $newfile = dirname($image) ."/thumbs/". $width ."_". basename($image);
- $result = imagejpeg($dst_img, $newfile, 75);
+ $result = imagejpeg($dst_img, $thumb_image, 75);
/* free your mind */
imagedestroy($dst_img);
imagedestroy($src_img);
if($result === false) {
- print "Can't write thumbnail ". $newfile ."\n";
+ print "Can't write thumbnail ". $thumb_image ."\n";
return false;
}
@@ -574,19 +564,23 @@ class PHPFSPOT {
$error = 0;
foreach($resolutions as $resolution) {
- $thumb_path = $this->translate_path($details['directory_path']) ."/thumbs/". $resolution ."_". $details['name'];
+
+ $thumb_path = $this->cfg->base_path ."/thumbs/". $resolution ."_". $file_md5;
+
+ /* if the thumbnail file doesn't exist, create it */
if(!file_exists($thumb_path)) {
if($fromcmd) print " ". $resolution ."px";
- if(!$this->create_thumbnail($full_path, $resolution))
+ if(!$this->create_thumbnail($full_path, $thumb_path, $resolution))
$error = 1;
}
+
/* if the file hasn't changed there is no need to regen the thumb */
elseif($file_md5 != $this->getMD5($idx) || $force) {
if($fromcmd) print " ". $resolution ."px";
- if(!$this->create_thumbnail($full_path, $resolution))
+ if(!$this->create_thumbnail($full_path, $thumb_path, $resolution))
$error = 1;
}
@@ -600,7 +594,7 @@ class PHPFSPOT {
} // gen_thumb()
- private function getMD5($idx)
+ public function getMD5($idx)
{
$result = $this->cfg_db->db_query("
SELECT img_md5
diff --git a/phpfspot_img.php b/phpfspot_img.php
index e3b0852..061f56d 100644
--- a/phpfspot_img.php
+++ b/phpfspot_img.php
@@ -25,11 +25,13 @@ class PHPFSPOT_IMG {
$details = $this->parent->get_photo_details($idx);
+ /* show original photo */
if($width == 0) {
$fullpath = $this->parent->translate_path($details['directory_path']) ."/". $details['name'];
}
+ /* show thumbnail */
else {
- $fullpath = $this->parent->translate_path($details['directory_path']) ."/thumbs/". $width ."_". $details['name'];
+ $fullpath = $this->parent->cfg->base_path ."/thumbs/". $width ."_". $this->parent->getMD5($idx);
}
if(!file_exists($fullpath)) {