code: def crop(self, image, geometry, options):
          
          crop = options['crop']
          x_image, y_image = self.get_image_size(image)
  
          if not crop or crop == 'noop':
              return image
          elif crop == 'smart':
              # Smart cropping is suitably different from regular cropping
              # to warrent it's own function
              return self._entropy_crop(image, geometry[0], geometry[1], x_image, y_image)
  
          # Handle any other crop option with the backend crop function.
          geometry = (min(x_image, geometry[0]), min(y_image, geometry[1]))
          x_offset, y_offset = parse_crop(crop, (x_image, y_image), geometry)
          return self._crop(image, geometry[0], geometry[1], x_offset, y_offset)
docs: Wrapper for ``_crop``