UNPKG

koishi-plugin-hhs-huatu

Version:
60 lines (59 loc) 2.05 kB
/** * 将数值向下或向上对齐到 64 的倍数 * @param value 原始数值 * @param direction 对齐方向:'floor' 向下,'ceil' 向上 */ export declare function alignTo64Grid(value: number, direction: 'floor' | 'ceil'): number; /** * Buffer 转 Base64 字符串(不含 data URL 前缀) */ export declare function bufferToBase64(buffer: Buffer): string; /** * 将图片尺寸调整为 64 的倍数 * @param buffer 图片 ArrayBuffer * @returns 调整后的图片 Buffer 和尺寸 */ export declare function resizeToMultipleOf64(buffer: ArrayBuffer): Promise<{ buffer: Buffer; width: number; height: number; }>; /** * 将图片亮度降低(变暗),方便用户在上面涂白 * @param buffer 原图 ArrayBuffer * @param brightness 亮度系数,默认 0.4(即降低到 40%) * @returns 变暗后的图片 Buffer */ export declare function darkenImage(buffer: ArrayBuffer, brightness?: number): Promise<Buffer>; /** * 从用户涂抹的图片中生成 Inpainting 蒙版 * * 处理流程: * 1. 灰度化 -> 阈值提取白色区域 -> 模糊 -> 再次阈值化 * 这个流程可以平滑蒙版边缘,避免 AI 重绘时产生明显边界 * 2. 计算白色区域的包围盒 * 3. 将包围盒扩展至 64 的倍数对齐 * 4. 生成最终蒙版 * * @param buffer 用户发回的涂抹图片 ArrayBuffer * @returns 蒙版 Buffer、宽度、高度 */ export declare function createInpaintMask(buffer: ArrayBuffer): Promise<{ maskBuffer: Buffer; width: number; height: number; }>; /** * 创建精确的 Inpainting 蒙版(保留原始涂抹形状) * * 与 createInpaintMask 不同,此函数保留用户涂抹的精确形状, * 而不是扩展为矩形。适用于需要精确控制重绘区域的场景。 * * @param buffer 用户发回的涂抹图片 ArrayBuffer * @returns 蒙版 Buffer、宽度、高度 */ export declare function createPreciseInpaintMask(buffer: ArrayBuffer): Promise<{ maskBuffer: Buffer; width: number; height: number; }>;