$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)) {
} // 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;
$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;
}
$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));
}
/* 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;
}
$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;
}
} // gen_thumb()
- private function getMD5($idx)
+ public function getMD5($idx)
{
$result = $this->cfg_db->db_query("
SELECT img_md5