from __future__ import annotations import argparse import imagehash from PIL import Image def bin_str(hash): return ''.join(str(b) for b in 1 * hash.hash.flatten()) def main(args: list[str] | None = None) -> str: ap = argparse.ArgumentParser() ap.add_argument('-file', required=True) opts = ap.parse_args(args) im = Image.open(opts.file) return ( f'ahash: {bin_str(imagehash.average_hash(im))}\n' f'dhash: {bin_str(imagehash.dhash(im))}\n' f'phash: {bin_str(imagehash.phash(im))}' ) if __name__ == '__main__': print(main())