          image: numpy.ndarray
              The image to be saved
          """
          self._set_thread()
          logger.trace("Putting to save queue: '%s'", filename)
          self._queue.put((filename, image))
  
      def close(self):
          """ Signal to the Save Threads that they should be closed and cleanly shutdown
          the saver """
          logger.debug("Putting EOF to save queue")
 
</s> remove             The filename of the image to be saved
        image: numpy.ndarray
            The image to be saved
 </s> add             The filename of the image to be saved. NB: Any folders passed in with the filename
            will be stripped and replaced with :attr:`location`.
        image: bytes
            The encoded image to be saved
        subfolder: str, optional
            If the file should be saved in a subfolder in the output location, the subfolder should
            be provided here. ``None`` for no subfolder. Default: ``None`` </s> remove         image: numpy.ndarray
            The image to be saved
 </s> add         image: bytes
            The encoded image to be saved
        subfolder: str or ``None``
            If the file should be saved in a subfolder in the output location, the subfolder should
            be provided here. ``None`` for no subfolder. </s> remove     def save(self, filename, image):
 </s> add     def save(self, filename: str, image: bytes, sub_folder: Optional[str] = None) -> None: </s> remove             logger.trace("Saved image: '%s'", filename)
 </s> add             logger.trace("Saved image: '%s'", filename)  # type:ignore
        logger.trace("Putting to save queue: '%s'", filename)  # type:ignore
        self._queue.put((filename, image, sub_folder))
          image: numpy.ndarray
              The image to be saved
          """
          self._set_thread()
        logger.trace("Putting to save queue: '%s'", filename)  # type:ignore
        self._queue.put((filename, image, sub_folder))
        logger.trace("Putting to save queue: '%s'", filename)  # type:ignore
        self._queue.put((filename, image, sub_folder))
  
      def close(self):
          """ Signal to the Save Threads that they should be closed and cleanly shutdown
          the saver """
          logger.debug("Putting EOF to save queue")
keep keep keep keep replace replace keep keep keep keep keep
 Extract filter: Allow saving of filtered images 
lib/image.py