http://php.net/exif_imagetype :

The return value is the same value that getimagesize() returns in index 2 but exif_imagetype() is much faster.

But exif functions are not always supported on every web-server.

If we remove $function_list[] = 'exif_imagetype'; from watermark_check_functions() and add a following check to _watermark_make_image($file), it will be compatible to PHP configured with no exif support.

  if (function_exists('exif_imagetype')) {
    $type = exif_imagetype($file);
  }
  else {
    $type = getimagesize($file);
    $type = $type[2];
  }