Skip to main content

Row-wise gradient dHash (difference hash) algorithm implementation in python.

Project description

dHashPy

Row-wise gradient dHash algorithm in python.

dHash algorithm was originally described at Kind of Like That - The Hacker Factor Blog

Build Status Build Status codecov docs Code style: black

Installation

pip install dhashpy -U
  • Install directly from GitHub:
pip install git+https://github.com/akamhy/dhashpy.git

Usage

>>> from dhashpy import DHash
>>> file = "/home/akamhy/Pictures/map_of_maths.png"
>>> dhash_file = DHash(file)
>>> dhash_file
DHash(hash=0b0110010000000011101010111100110111001101100011111000111100001110, hash_hex=0x6403abcdcd8f8f0e, path=/home/akamhy/Pictures/map_of_maths.png)
>>>
>>> dhash_file.hash # A 64-bit hash, notice the prefix "0b" indicating it's binary. Total string length = 64 + 2 = 66
'0b0110010000000011101010111100110111001101100011111000111100001110'
>>>
>>> len(dhash_file)
66
>>> dhash_file.bits_in_hash
64
>>>
>>> dhash_file.hash_hex
'0x6403abcdcd8f8f0e'
>>>
>>> dhash_file - "0x6403abcdcd8f8f0e"
0
>>>
>>> dhash_file == "0x6403abcdcd8f8f0e"
True
>>>
>>> dhash_file - "0b0110010000000011101010111100110111001101100011111000111100001110"
0
>>>          
>>> dhash_file
dhash_file
>>> dir(dhash_file)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__len__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__weakref__', 'bin2hex', 'bits_in_hash', 'calc_hash', 'hamming_distance', 'hash', 'hash_hex', 'height', 'hex2bin', 'image', 'path', 'width']
>>> dhash_file.height
8
>>> dhash_file.width
9
>>> dhash_file.image
<PIL.Image.Image image mode=L size=9x8 at 0x7F9D324C0580>
>>>

Docs : https://dhashpy.readthedocs.io/en/latest/

License

License: MIT

Released under the MIT License. See license for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dhashpy-1.0.2.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

dhashpy-1.0.2-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file dhashpy-1.0.2.tar.gz.

File metadata

  • Download URL: dhashpy-1.0.2.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for dhashpy-1.0.2.tar.gz
Algorithm Hash digest
SHA256 fff2be22be76a0de1f570ebf089ebfc9eb1a3be6242ddeb4cc1c63ecd57860e8
MD5 9110b462131bbd7800995b8d9338008b
BLAKE2b-256 684daa90251b5d055811b11a87e548188043c0727adb37f5679d9d5bea931aaa

See more details on using hashes here.

File details

Details for the file dhashpy-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: dhashpy-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for dhashpy-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0db07b226137a0526125e7666b02594ddbb12724c29dfe725b192dce1a207f6d
MD5 f8ee0615d7255b237c87bc6cfc3f246c
BLAKE2b-256 b39f723bdd462eced7d06ec4fcbec0f94006bc226d2c89498e3efbf64c4d65f1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page