Rust crate providing C FFI for perceptual image hashing functions.
cargo build --releaseOutput:
- Linux:
target/release/libimagehash_ffi.a/libimagehash_ffi.so - Windows:
target/release/imagehash_ffi.lib/imagehash_ffi.dll - macOS:
target/release/libimagehash_ffi.a/libimagehash_ffi.dylib
char* imagehash_average_hash(const uint8_t* data, uint32_t width, uint32_t height, uint32_t hash_size);
char* imagehash_dhash(const uint8_t* data, uint32_t width, uint32_t height, uint32_t hash_size);
char* imagehash_phash(const uint8_t* data, uint32_t width, uint32_t height, uint32_t hash_size, uint32_t highfreq_factor);
char* imagehash_whash_haar(const uint8_t* data, uint32_t width, uint32_t height, uint32_t hash_size, int32_t image_scale);
char* imagehash_colorhash(const uint8_t* data, uint32_t width, uint32_t height, uint32_t binbits);
uint32_t imagehash_hamming_distance(const char* hex1, const char* hex2);
void imagehash_free_string(char* s);extern char* imagehash_phash(const uint8_t* data, uint32_t width, uint32_t height, uint32_t hash_size, uint32_t highfreq_factor);
extern void imagehash_free_string(char* s);
uint8_t* rgb = ...; // RGB24 data
char* hash = imagehash_phash(rgb, 64, 64, 8, 4);
// use hash
imagehash_free_string(hash);
the following model generated this readme, running on a gpu server running entirely on solar.