private static function do_resize_to_max_side($src_fn, $resized_fn, $max_x, $max_y, $resize_type = RESIZE_CROP)
 {
     $convert = ImageResize::find_magick();
     $magick_attempted = FALSE;
     if ($convert && !ImageResize::$skip_magick) {
         // try to do it with imagemagick
         $magick_attempted = TRUE;
         try {
             return ImageResize::magick_resize_image($convert, $src_fn, $resized_fn, $max_x, $max_y, $resize_type);
         } catch (CNException $magick_exc) {
             Logger::log("ImageMagick failed to resize {$src_fn}; trying GD");
         }
     }
     if (ImageResize::gd_available() && !ImageResize::$skip_gd) {
         // we have gd installed
         return ImageResize::gd_resize_image($src_fn, $resized_fn, $max_x, $max_y, $resize_type);
     }
     if ($magick_attempted) {
         throw $magick_exc;
     }
     throw new CNException(MISSING_DEPENDENCY, "need to have either gd or imagemagick installed to resize images");
 }