code: def create_thumbnail(self, image, geometry,
                           upscale=True, crop=None, colorspace='RGB'):
          
          image = self.colorspace(image, colorspace)
          image = self.scale(image, geometry, upscale, crop)
          image = self.crop(image, geometry, crop)
  
          return image
docs: This serves as a really basic example of a thumbnailing method. You
          may want to implement your own logic, but this will work for
          simple cases.
  
          :param Image image: This is your engine's ``Image`` object. For
              PIL it's PIL.Image.
          :param tuple geometry: Geometry of the image in the format of (x,y).
          :keyword str crop: A cropping offset string. This is either one or two
              space-separated values. If only one value is specified, the cropping
              amount (pixels or percentage) for both X and Y dimensions is the
              amount given. If two values are specified, X and Y dimension cropping
              may be set independently. Some examples: '50% 50%', '50px 20px',
              '50%', '50px'.
          :keyword str colorspace: The colorspace to set/convert the image to.
              This is typically 'RGB' or 'GRAY'.
          :returns: The thumbnailed image. The returned type depends on your
              choice of Engine.