/** * Given the filepath of a full sized image bank image, return the * filepath to the thumbnail'd version. This function will first create * the thumbnail if it doesn't yet exist. The second argument, height, * can be used to proportionally scale the image to a certain size. * * @param $filepath * The filepath to a full sized image. * @param $height * Defaults to 90; the height of the thumbnail. * @param $thumbnailpath * The path to the (possibly newly generated) thumbnail. */ function cnucustom_imagebank_thumbnail($filepath, $height = 90) { $filepath_parts = explode('/', $filepath); $filename = array_pop($filepath_parts); $thumbnailpath = implode('/', $filepath_parts).'/thumbnails/'.$filename; // with no thumbnail, we'll create our own. we only know what we want // the height to be, so we figure out the proper width proportion first. if (!file_exists($thumbnailpath)) { $info = image_get_info($filepath); $ratio_change = $height / $info['height']; $width = $info['width'] * $ratio_change; image_resize($filepath, $thumbnailpath, $width, $height); } return $thumbnailpath; }