关于 image-compare
image-compare 逐像素比较两张图像并报告差异,适合检查界面实现或视觉回归。它提供不匹配统计数据,并生成以红色标出差异的图像。
主要功能
- 01逐像素比较图像
- 02调整输入图像至匹配尺寸
- 03可配置比较阈值
- 04报告差异数量和百分比
- 05生成红色差异标记图
适用场景
- 01将 UI 截图与设计稿比较
- 02检查不同版本间的视觉回归
- 03验证页面是否符合 Figma 导出图
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pascalorg/ skills --skill image-compare安装后在 Claude Code 中输入/image-compare确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/image-compare.jsimage-compare.shpackage-lock.jsonpackage.json详细介绍
图像对比
逐像素对比两张图像。返回差异像素数和不匹配百分比,并生成一张用红色标出差异的差异图像。
适用场景
- 将实现效果的截图与原始设计进行对比
- 发现同一页面两个版本之间的视觉回归
- 验证 UI 是否与 Figma 导出图一致
工作原理
- 加载两张图像并调整尺寸,使其尺寸一致(采用两者中较小的尺寸)
- 使用
pixelmatch对比每个像素,并标记超出可配置阈值的差异 - 返回不匹配统计信息,并写入一张用红色显示差异的图像
用法
bash <skill-path>/scripts/image-compare.sh <image1> <image2> [diff-output.png] [threshold]
参数:
image1— 第一张图像的路径(必填)image2— 第二张图像的路径(必填)diff-output.png— 差异图像的写入路径(可选,默认为./diff.png)threshold— 像素匹配阈值,范围为 0–1;数值越低,匹配要求越严格(可选,默认为0.1)
示例:
# Compare a design against implementation
bash <skill-path>/scripts/image-compare.sh design.png screenshot.png
# Compare with custom threshold and output path
bash <skill-path>/scripts/image-compare.sh before.png after.png ./changes.png 0.05
输出
{
"totalPixels": 921600,
"differentPixels": 4523,
"mismatchPercentage": 0.49,
"dimensions": { "width": 1280, "height": 720 },
"diffImage": "./diff.png",
"threshold": 0.1
}
| 字段 | 类型 | 描述 |
|---|---|---|
| totalPixels | Number | 对比的像素总数 |
| differentPixels | Number | 存在差异的像素数 |
| mismatchPercentage | Number | 存在差异的像素百分比 |
| dimensions | Object | 对比时使用的宽度和高度 |
| diffImage | String | 生成的差异图像的路径 |
| threshold | Number | 使用的灵敏度阈值 |
向用户呈现结果
完成对比后,呈现摘要:
Comparison: design.png vs screenshot.png
Mismatch: 0.49% (4,523 pixels out of 921,600)
Diff image saved to: ./diff.png
The images are nearly identical. Differences are highlighted in red in the diff image.
百分比的含义:
- < 0.1% — 基本一致
- 0.1% - 1% — 细微差异,可能由抗锯齿或子像素渲染导致
- 1% - 5% — 差异明显,值得检查
- > 5% — 视觉变化显著
故障排除
图像尺寸不同 — 脚本会自动将两张图像调整为较小图像的尺寸。为获得最佳效果,请使用尺寸相同的图像。
误报过多 — 提高阈值(例如 0.2)。不同浏览器之间常见抗锯齿差异。
评论
支持 Markdown