koishi-plugin-best-cave
Version:
回声洞,可自由添加内容,可配置 MD5/pHash 查重,支持查阅投稿列表(可用但等待重构)
81 lines (80 loc) • 2.45 kB
TypeScript
import { Buffer } from 'buffer';
/**
* 图片哈希计算工具类
* 使用 DCT(离散余弦变换)方法计算图片的感知哈希值,可用于图片相似度比较
*/
export declare class ContentHasher {
/**
* 计算图片的感知哈希值
* @param imageBuffer - 图片的二进制数据
* @returns 返回64位的十六进制哈希字符串
* @throws 当图片处理失败时可能抛出错误
*/
static calculateHash(imageBuffer: Buffer): Promise<string>;
/**
* 将二进制字符串转换为十六进制
* @param binary - 二进制字符串
* @returns 十六进制字符串
* @private
*/
private static binaryToHex;
/**
* 将十六进制字符串转换为二进制
* @param hex - 十六进制字符串
* @returns 二进制字符串
* @private
*/
private static hexToBinary;
/**
* 计算图像的DCT(离散余弦变换)
* @param data - 图像数据
* @param size - 图像尺寸
* @returns DCT变换后的矩阵
* @private
*/
private static computeDCT;
/**
* 获取DCT系数
* @param index - 索引值
* @param size - 矩阵大小
* @returns DCT系数
* @private
*/
private static getDCTCoefficient;
/**
* 计算数组的中位数
* @param arr - 输入数组
* @returns 中位数
* @private
*/
private static calculateMedian;
/**
* 从DCT矩阵中提取特征值
* @param matrix - DCT矩阵
* @param size - 矩阵大小
* @returns 特征值数组
* @private
*/
private static extractFeatures;
/**
* 计算两个哈希值之间的汉明距离
* @param hash1 - 第一个哈希值
* @param hash2 - 第二个哈希值
* @returns 汉明距离
* @throws 当两个哈希值长度不等时抛出错误
*/
static calculateDistance(hash1: string, hash2: string): number;
/**
* 计算两个图片哈希值的相似度
* @param hash1 - 第一个哈希值
* @param hash2 - 第二个哈希值
* @returns 返回0-1之间的相似度值,1表示完全相同,0表示完全不同
*/
static calculateSimilarity(hash1: string, hash2: string): number;
/**
* 计算文本的哈希值
* @param text - 输入文本
* @returns 文本的哈希值(36进制字符串)
*/
static calculateTextHash(text: string): string;
}