UNPKG

koishi-plugin-best-cave

Version:

回声洞,可自由添加内容,可配置 MD5/pHash 查重,支持查阅投稿列表(可用但等待重构)

81 lines (80 loc) 2.45 kB
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; }