# @argos-ci/mask-fingerprint 中文文档

规范地址：https://npmcn.com/package/%40argos-ci/mask-fingerprint/

版本：0\.1\.3
npm 元数据更新时间：2026-01-18T17:56:54.732Z
中文译文更新时间：2026-11-06T18:32:15.913Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40argos-ci/mask-fingerprint
原文对照：https://npmcn.com/package/%40argos-ci/mask-fingerprint/?lang=original
项目主页：https://github.com/argos-ci/mask-fingerprint#readme
源码仓库：https://github.com/argos-ci/mask-fingerprint

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：32.7 kB，5 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>24\.0\.0
- 运行依赖：0 个
- 首次发布：2026-01-11T20:08:52.721Z
- 最新版本发布：2026-01-18T17:56:54.414Z
- 近 30 天下载量：5433（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：6（近 12 个月 6 个）

## 中文简介

快速,定型的PNG图像视觉diff指纹,通过N-API作为Node.js本地模块被曝光.

## 安装

```sh
npm install @argos-ci/mask-fingerprint
```

也可以使用：`pnpm add @argos-ci/mask-fingerprint`、`yarn add @argos-ci/mask-fingerprint`、`bun add @argos-ci/mask-fingerprint`

## README

# 口罩指印

快速,决定性 **视觉 diff 指纹** 对于PNG图像,通过N-API作为Node.js本地模块被曝光.

此库使用 PNG diff 图像( 例如红像素视觉 diffs) 并生成一个 **稳定平等指纹**。 。 。 .  
两个视觉上非常相近的光圈会产生 **同样的指纹**,允许:

-   `fingerprintA === fingerprintB`
-   数据库索引
-   分组和分解
-   没有自定义比较逻辑的加入

核心算法以Rust为性能写出并被曝光出Node.js.

## 这能解决什么问题

经典的知觉散列需要进行相距比较,这与SQL指数或严格的等同性不起作用.

这个项目是:

-   规范 diff 口罩
-   将空间密度量化
-   粗糙的表达方式

结果是 **容忍的平等**,不大致相似.

## 如何运作

1.  将 PNG 解码为 RGBA
2.  提取红色像素的二进制掩码
3.  吸收小像素噪声的可选扩展
4.  裁剪到边框
5.  可选平方贴纸
6.  拆分为小网格(8×8,16×16或32×32)
7.  计算每个细胞的红色密度
8.  将密度量化为垃圾桶
9.  用 FNV-1a- 64- bit 包装位和散列
10.  返回决定性的字符串密钥

小的局部差异通常不会改变最终指纹.

## 安装

### 所需资源

-   节点.js 24或更新
-   平稳
-   货物

### 安装依赖关系

```bash
pnpm install
```

或者说

```bash
npm install
```

这构建了本土模块.

## 使用量

```ts
import fs from 'node:fs'
import { fingerprintDiff } from 'mask-fingerprint'

const png = fs.readFileSync('diff.png')

const fingerprint = await fingerprintDiff(png, {
  gridSize: 16,
  dilateRadius: 1,
  padToSquare: true,
  densityThresholds: [0.002, 0.02, 0.08],
  redThreshold: {
    rMin: 200,
    gMax: 90,
    bMax: 90,
    aMin: 16,
  },
})

console.log(fingerprint)
// v1:g16:d1:t0.002,0.02,0.08:3fa1c2e9a4b8d210
```

返回的值被设计成存储在数据库中,索引化,并使用严格的等值进行比较.

## API 密码

### `fingerprintDiff(buffer, options?)`

回返a `Promise<string>`。 。 。 .

#### 参数

**缓冲**

-   节点.js `Buffer`
-   Raw PNG 文件内容

**选项** (可选)

```ts
{
  gridSize?: 8 | 16 | 32        // default: 16
  dilateRadius?: 0 | 1          // default: 1
  padToSquare?: boolean         // default: true

  densityThresholds?: number[]  // default: [0.002, 0.02, 0.08]
                                // sorted, values between 0 and 1

  redThreshold?: {
    rMin?: number               // default: 200
    gMax?: number               // default: 90
    bMax?: number               // default: 90
    aMin?: number               // default: 16
  }
}
```

#### 回返

```ts
string
```

适合进行平等比较和索引的决定性指纹字符串.

## 支持的PNG格式

-   RGBA (英语)
-   RGB 语言
-   灰度
-   带有α的灰度
-   索引或调色板 PNG

调色板和低位深度图像自动被扩展.

## 性能特征

-   以像素数计的线性时间
-   没有重型浮点操作
-   热道最小分配
-   适用于分批处理

典型的工作量每秒处理上千个diff.

## 何时使用

不错:

-   视觉回归测试
-   屏幕截图 diff 复制
-   CI 文物组装
-   数据库支持的视觉变化跟踪

不合时宜:

-   一般图像相似性搜索
-   大几何转换
-   旋转或强度变化

这个库是故意优化的 **防弹口罩**而非任意图像.

## 发展

```bash
cargo check
cargo test
```

重建本地模块 :

```bash
pnpm build
```

## 许可证

麻省理工学院

## 常见问题

### @argos-ci/mask-fingerprint 是什么？

快速,定型的PNG图像视觉diff指纹,通过N-API作为Node\.js本地模块被曝光\.

### 如何安装 @argos-ci/mask-fingerprint？

在项目目录运行 npm install @argos-ci/mask-fingerprint，或使用 pnpm add / yarn add / bun add。

### @argos-ci/mask-fingerprint 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @argos-ci/mask-fingerprint 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @argos-ci/mask-fingerprint 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>24\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @argos-ci/mask-fingerprint 可以商用吗？

@argos-ci/mask-fingerprint 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @argos-ci/mask-fingerprint 的下载量有多少？

根据 npm 官方下载统计，@argos-ci/mask-fingerprint 在 2026/10/07 – 2026/11/05 这 30 天内被下载 5,433 次，日均约 181 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @argos-ci/mask-fingerprint 还在维护吗？

最新版本 0\.1\.3 发布于 2026/01/19（9 个月前）；至今共发布 6 个版本，其中过去 12 个月发布了 6 个；首次发布于 2026/01/12。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

