code: def _fill_cropping(self, image_size, view_size):
          
          def aspect_ratio(width, height):
              return width / height
  
          ar_view = aspect_ratio(*view_size)
          ar_image = aspect_ratio(*image_size)
  
          if ar_view < ar_image:  # image too wide
              crop = (1.0 - (ar_view/ar_image)) / 2.0
              return (crop, 0.0, crop, 0.0)
          if ar_view > ar_image:  # image too tall
              crop = (1.0 - (ar_image/ar_view)) / 2.0
              return (0.0, crop, 0.0, crop)
          return (0.0, 0.0, 0.0, 0.0)
docs: Return a (left, top, right, bottom) 4-tuple containing the cropping
          values required to display an image of *image_size* in *view_size*
          when stretched proportionately. Each value is a percentage expressed
          as a fraction of 1.0, e.g. 0.425 represents 42.5%. *image_size* and
          *view_size* are each (width, height) pairs.