image_hashing
NOTE: UNDER DEVELOPMENT!
A Dart library for generating perceptual hashes (AHash, PHash, DHash, WHash) from images, providing efficient single-image hash computation and comparison with pure Dart implementation.
Compatibility: Dart ^3.6.0
๐ Getting Started
Installation
Method 1 (Recommended) With Dart:
dart pub add image_hashing
With Flutter:
flutter pub add image_hashing
Method 2
Add to pubspec.yaml
:
dependencies:
image_hashing: ^0.1.1
Then run:
dart pub get
Basic Usage
import 'package:image_hashing/image_hashing.dart';
void main() {
final hasher = AHash(); // or other hasher types
final hashRes = hasher.encodeImage("YourImageFile");
}
Currently only AHash
is supported, to validate the whole process.
encodeImage
will return you a String
of hash value.
For AHash
and PHash
, it will be 64 bits (After hashing, you will obtain an $(8 \times 8)$ image).
For DHash
, it will be 128 bits (Here, I decide to use both row difference and column difference to increase the countability, so you will obtain 2 $(8 \times 8)$ images).
WHash
is still under-planning.
๐ฆ Features
-
Core Feature 1: Different Hashing Methods
final ahasher = AHash(); final phasher = PHash(); final dhasher = DHash(); final whasher = WHash(); // Wavelet Transform Hashing dependency is under development
To encode an image:
final ahasher = AHash(useCV: false); // OpenCV compatibility is under development final ahash = ahasher.encodeImage("YourImageFile");
-
Core Feature 2: Hamming Distances of Image Hashing After hashing, you can use the following function to calculate the Hamming Distances
final distance = hammingDistance(a, b, size: 64)
where
a
andb
are the hash strings.size
is 64 forAHash
andPHash
, 128 forDHash
.Result will in an int value.
๐งช Testing
Unit tests are under development. Currently only unit tests for hamming distance
dart test
๐ค Contributing
Workflow
- Fork repository
- Create feature branch:
git checkout -b feat/your-feature
- Follow Conventional Commits:
git commit -m "feat: add new validation method"
Code Style
Follow the Effective Dart and analysis_options.yaml
๐ Documentation
๐ License
BSD 3-Clause "New" or "Revised" License ยฉ 2025 RequieMa
Full text at LICENSE
๐ง Maintenance Status
Basic functionalities are under development.
Please report issues via GitHub Issues
Libraries
- image_hashing
- Support for doing something awesome.