summaryrefslogtreecommitdiffstats
path: root/phpfspot.class.php
diff options
context:
space:
mode:
authorAndreas Unterkircher <unki@netshadow.at>2007-06-21 18:49:03 +0000
committerAndreas Unterkircher <unki@netshadow.at>2007-06-21 18:49:03 +0000
commit3b285de30751d2dec0e242dcc50aa67147ada191 (patch)
tree5e93492cea6c03e5624fcc172625acffb10bb5ec /phpfspot.class.php
parent322fc50246f37ef26090dd954aa78b2649218c38 (diff)
issue14, thumbs are now stored outside F-Spot's directory structure
issue12, file is not stored in phpfspot db if the thumbnail generation failed git-svn-id: file:///var/lib/svn/phpfspot/trunk@119 fa6a889d-dae6-447d-9e79-4ba9a3039384
Diffstat (limited to 'phpfspot.class.php')
-rw-r--r--phpfspot.class.php40
1 files changed, 17 insertions, 23 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