用于图像比较的免费 Node.js API
基于 Node.js 的开源 API,可逐像素比较图像。用于 Node.js 应用程序中图像比较的强大、灵活且高效的解决方案。
图像比较在软件开发中起着至关重要的作用,特别是在视觉回归测试、图像质量保证和像素完美设计验证等领域。无论您是开发软件以确保跨多个平台的一致 UI 外观,还是在生产流程中自动进行视觉检查,拥有高效的图像比较工具都是必不可少的。LooksSame 是由 Gemini-Testing 开发的开源 API,它通过其直观的功能简化了创建图像比较软件的过程。该库有几个重要功能,例如逐像素图像比较、抗锯齿检测、配置公差控制、处理图像尺寸、支持 Promises 等等。
LooksSame 是一个基于 Node.js 的 API,专为图像比较而设计。它允许开发人员逐像素比较图像,并提供选项来处理由于渲染环境差异而可能出现的细微变化。通过利用该库,软件开发人员可以构建自己的应用程序,以检测显着的视觉差异,同时忽略细微的变化。该 API 主要侧重于帮助开发人员保持 UI 设计的一致性,但其多功能性使其适用于许多其他图像比较用例。凭借其简单的 API 和可自定义的选项,LooksSame 是任何开发人员工具包的绝佳补充,特别是对于基于 Web 的 UI 测试、自动图像生成和其他视觉准确性至关重要的场景。
开始使用 LooksSame
安装 LooksSame 的推荐方法是使用 NPM。请使用以下命令顺利安装。
通过 NPM 安装 LooksSame
npm install looks-same
Node.js 应用程序中的基本图像比较
开源 LooksSame 库使软件开发人员可以轻松地在 Node.js 应用程序中执行基本图像比较。安装后,您可以通过在代码中要求 LooksSame 模块来比较两幅图像。这是一个基本示例,展示了如何使用该库检查两幅图像在视觉上是否相同:在此示例中,比较 image1.png 和 image2.png。如果它们在视觉上相同,则 equal 将返回 true;否则,它将返回 false。
如何比较 Node.js 应用内的两幅图像?
const looksSame = require('looks-same');
// Compare two images
looksSame('image1.png', 'image2.png', (error, { equal }) => {
if (error) {
console.error('Error comparing images:', error);
} else if (equal) {
console.log('Images are identical!');
} else {
console.log('Images differ!');
}
});
基于容差的图像比较
对于不需要像素完美匹配的应用程序,软件开发人员可以添加容差级别。这样可以忽略图像之间的细微差异,例如由于在不同浏览器或操作系统上渲染而导致的变化。在下面的代码示例中,容差设置为 5%,这意味着小的像素变化(最多 5%)不会导致图像被视为不同。
如何在 Node.js 应用内执行基于容差的图像比较?
cfunction compareWithTolerance(image1, image2, toleranceLevel) {
looksSame(image1, image2, { tolerance: toleranceLevel }, (error, { equal }) => {
if (error) {
console.error('Error comparing images:', error);
} else if (equal) {
console.log('Images are visually identical within tolerance!');
} else {
console.log('Images differ!');
}
});
}
// Usage
compareWithTolerance('image1.png', 'image2.png', 5); // 5% tolerance
突出显示特定差异区域
对于更复杂的应用程序,软件开发人员可能希望仅识别和分析特定差异区域。LooksSame 库提供了一个边界框功能,可显示发生差异的确切区域。此函数输出不同区域的边界框坐标,从而更容易关注图像中发生变化的特定部分。以下示例显示如何使用边界框坐标来比较图像并突出显示差异。
如何通过 Node.js 应用比较识别图像特定区域之间的差异?
function compareWithDiffBounds(image1, image2) {
looksSame(image1, image2, (error, { diffBounds }) => {
if (error) {
console.error('Error comparing images:', error);
} else {
console.log('Bounding box of differences:', diffBounds);
}
});
}
// Usage
compareWithDiffBounds('image1.png', 'image2.png');
抗锯齿检测,实现准确比较
开源 LooksSame 库允许软件开发人员在 Node.js 应用程序内使用抗锯齿检测方法执行图像压缩。抗锯齿在比较图像时可能会导致误报,因为它会在边缘渲染中引入轻微的变化。该库的 ignoreAntialiasing 选项有助于避免这些误报。这对于图像在不同设备或浏览器上的渲染方式可能不同但视觉效果仍然相同的应用程序尤其有用。