fastimagehash/fastimagehash.h
2019-12-28 09:46:59 -05:00

61 lines
1.6 KiB
C

#ifndef FASTIMAGEHASH_FASTIMAGEHASH_H
#define FASTIMAGEHASH_FASTIMAGEHASH_H
#define FASTIMAGEHASH_VERSION "1.0"
#include <stdio.h>
typedef unsigned char uchar;
typedef struct multi_hash {
uchar *ahash;
uchar *phash;
uchar *dhash;
uchar *whash;
uchar *mhash;
} multi_hash_t;
#ifdef __cplusplus
extern "C" {
#endif
multi_hash_t *multi_hash_create(int hash_size);
void multi_hash_destroy(multi_hash_t *h);
int multi_hash_file(const char *filepath, multi_hash_t *out, int hash_size, int ph_highfreq_factor, int wh_img_scale);
int multi_hash_mem(void *buf, multi_hash_t *out, size_t buf_len, int hash_size, int ph_highfreq_factor, int wh_img_scale);
void hash_to_hex_string_reversed(const uchar *h, char *out, int hash_size);
void hash_to_hex_string(const uchar *h, char *out, int hash_size);
int mhash_mem(void *buf, uchar *out, size_t buf_len, int hash_size);
int mhash_file(const char *filepath, uchar *out, int hash_size);
int ahash_mem(void *buf, uchar *out, size_t buf_len, int hash_size);
int ahash_file(const char *filepath, uchar *out, int hash_size);
int dhash_file(const char *filepath, uchar *out, int hash_size);
int dhash_mem(void *buf, uchar *out, size_t buf_len, int hash_size);
int whash_file(const char *filepath, uchar *out, int hash_size, int img_scale);
int whash_mem(void *buf, uchar *out, size_t buf_len, int hash_size, int img_scale);
int phash_file(const char *buf, uchar *out, int hash_size, int highfreq_factor);
int phash_mem(void *buf, uchar *out, size_t buf_len, int hash_size, int highfreq_factor);
#ifdef __cplusplus
};
#endif
#endif