3 function getPreview($imgFile, $maxSize = THUMB_SIZE)
5 # example: data/myalbum/100.mypic.jpg
6 $newImgFile = DATA_DIR."/".dirname($imgFile)."/".$maxSize.".".basename($imgFile);
8 # if the preview is a symlink, image is already good sized
9 if (is_link($newImgFile)) return $imgFile;
11 if (! is_file($newImgFile))
13 # this tels the template to flush output after displaying previews
14 $GLOBALS["generating"] = true;
16 # reset script time limit to 20s (wont work in safe mode)
19 $ext = strtolower(substr($imgFile, -4));
21 $img = imagecreatefromjpeg($imgFile);
23 $img = imagecreatefrompng($imgFile);
27 # if the image is already small, make a symlink, and return it
28 if ($w <= $maxSize and $h <= $maxSize) {
30 symlink($imgFile, $newImgFile);
34 # config to allow group writable files
36 # create the thumbs directory recursively
37 if (! is_dir(dirname($newImgFile))) mkdir(dirname($newImgFile), 0777, true);
41 // $newH = $h/($w/$maxSize);
43 $newW = $w/($h/$maxSize);
47 $newImg = imagecreatetruecolor($newW, $newH);
49 imagecopyresampled($newImg, $img, 0, 0, 0, 0, $newW, $newH, $w, $h);
52 imagejpeg($newImg, $newImgFile);
54 imagepng($newImg, $newImgFile);
57 imagedestroy($newImg);