code: def redraw_required(self, image):
          
          self.bounding_box = ImageChops.difference(self.image, image).getbbox()
          if self.bounding_box is not None:
              self.image = image.copy()
              return True
          else:
              return False
docs: Calculates the difference from the previous image, return a boolean
          indicating whether a redraw is required. A side effect is that
          ``bounding_box`` and ``image`` attributes are updated accordingly, as is
          priming :py:func:`getdata`.
  
          :param image: The image to render.
          :type image: PIL.Image.Image
          :returns: ``True`` or ``False``
          :rtype: bool