$h) { $newW = $maxSize; $newH = $h/($w/$maxSize); } else { $newW = $w/($h/$maxSize); $newH = $maxSize; } $newImg = imagecreatetruecolor($newW, $newH); imagecopyresampled($newImg, $img, 0, 0, 0, 0, $newW, $newH, $w, $h); if ($ext == ".jpg") imagejpeg($newImg, $newImgFile); else imagepng($newImg, $newImgFile); imagedestroy($img); imagedestroy($newImg); } return $newImgFile; } } function getAlbumPreview($dir) { $previewFile = DATA_DIR."/$dir/albumpreview"; if (is_file("$previewFile.jpg")) { return "$previewFile.jpg"; } else if (is_file("$previewFile.empty")) { return ""; } else if (is_file("$previewFile.png")) { return "$previewFile.png"; } else { # config to allow group writable files umask(DATA_UMASK); # create the thumbs directory recursively if (! is_dir(dirname($previewFile))) @mkdir(dirname($previewFile), 0777, true) or die("Could not write in data dir. Please fix permissions."); // no preview: look for a preview in current dir, write it, return it foreach (scandir($dir) as $file) if ($file[0] != '.') { $ext = strtolower(substr($file, -4)); if ($ext == ".jpg" or $ext == ".png") { $thumb = getPreview("$dir/$file"); copy($thumb, $previewFile.$ext); return $previewFile.$ext; } else if (is_dir("$dir/$file")) { $subPreview = getAlbumPreview("$dir/$file"); if ($subPreview) { $myPreview = dirname($previewFile)."/".basename($subPreview); copy($subPreview, $myPreview); return $myPreview; } } } // nothing found. create empty file touch("$previewFile.empty"); return ""; } } ?>