  
      Parameters
      ----------
      filename: str
          Full path to the image to be loaded.
      output_shape: bool
          If ``True`` then a tuple is returned with the shape tuple of the image as the final value.
          Default: ``False``
  
      Returns
      -------
      str
          The :func:`hashlib.hexdigest()` representation of the `sha1` hash of the given image.
 
</s> remove     output_shape: bool
        If ``True`` then a 3rd item is added to the output tuple containing the shape of the read
        image. Default: ``False``
 </s> add  </s> remove     str
        The :func:`hashlib.hexdigest()` representation of the `sha1` hash of the given image.
 </s> add     dict
        The output dictionary will contain the `width` and `height` of the png image as well as any
        `itxt` information. </s> remove     with_hash: bool, optional
        If ``True`` then returns the image's sha1 hash with the image. Default: ``False``
 </s> add     with_metadata: bool, optional
        Only returns a value if the images loaded are extracted Faceswap faces. If ``True`` then
        returns the Faceswap metadata stored with in a Face images .png exif header.
        Default: ``False`` </s> remove     image_hash: str
        The :func:`hashlib.hexdigest()` representation of the `sha1` hash of the encoded image
 </s> add  </s> remove     tuple: (`filename`, :func:`hashlib.hexdigest()` representation of the `sha1` hash of the image,
            [optional shape tuple] )
 </s> add     tuple
        (**filename** (`str`), **metadata** (`dict`) )

        Full path to the image to be retrieve the meta information for.
  
      Parameters
      ----------
      filename: str
        Full path to the image to be retrieve the meta information for.
        Full path to the image to be retrieve the meta information for.
        Full path to the image to be retrieve the meta information for.
        Full path to the image to be retrieve the meta information for.
  
      Returns
      -------
      str
          The :func:`hashlib.hexdigest()` representation of the `sha1` hash of the given image.
keep keep keep keep replace replace replace replace keep keep keep keep keep
 Update extracted faces to use PNG EXIF data (#1123)

Documentation
  - Update Usage.md, align.rst and image.rst
lib.image.py
  - read_image - Remove hash return, add metadata return
  - Remove read_image_hash functions
  - Add read_image_meta functios
  - Replace encode_image_with_hash with encode_image (to store metadata)
  - Add png meta reading and writing functions
  - Update Image Loaders/Savers to handle metadata rather than hashes
lib.training_data
  - Naming updates to remove references to hashes
lib.align.Alignments
  - Add versioning notes
  - Increment alignments version to 2.1
  - Deprecate hashing lookup functions
  - Replace filter_hashes with filter_faces
lib.align.detected_face
  - DetectedFace
    - Remove hash property
    - Add png header data serializing/deserializing functions
  - Mask
    - Add png header data serializing/deserializing functions
  - add update_legacy_png_header function to update png meta data
lib.cli.args - Deprecate alignments files for training
- plugins.train.trainer
  - Update alignments/mask code to read png header data
- scripts.convert
  - Aligned images folder - read data from png headers
- scripts.extract
  - Write png header information and no longer store hash of face
- tools.alignments
  - remove leftover-faces, merge and update-hashes jobs
  - Update jobs to use png meta data rather than hashes
- tools.manual
  - Update extract code to output png meta data and don't store hashes
  - Perform check on launch that tool is not pointing at a faces folder
tools.mask
  - Update to use png meta data
tools.sort
  - Update to use png meta data 
lib/image.py