docs: def _normalize_params(image, width, height, crop):
      """
      Normalize params and calculate aspect.
      """
      if width is None and height is None:
          raise ValueError("Either width or height must be set. Otherwise "
                           "resizing is useless.")
  
      if width is None or height is None:
          aspect = float(image.width) / float(image.height)
  
          if crop:
              raise ValueError("Cropping the image would be useless since only "
                               "one dimention is give to resize along.")
  
          if width is None:
              width = int(round(height * aspect))
          else:
              height = int(round(width / aspect))
  
      return (width, height, crop)