code: def random_crop(src, size):
      
      h, w, _ = src.shape
      new_w, new_h = scale_down((w, h), size)
  
      x0 = random.randint(0, w - new_w)
      y0 = random.randint(0, h - new_h)
  
      out = fixed_crop(src, x0, y0, new_w, new_h, size)
      return out, (x0, y0, new_w, new_h)
docs: Randomly crop src with size. Upsample result if src is smaller than size