spatie / pixelmatch-php
使用 PHP 比较图像
1.1.0
2024-04-12 06:20 UTC
Requires
- php: ^8.1
- symfony/process: ^6.3|^7.0
Requires (Dev)
- laravel/pint: ^1.13
- pestphp/pest: ^2.0
- phpstan/phpstan: ^1.10
- spatie/ray: ^1.28
README
该包可以比较两张图像并返回匹配像素的百分比。它是 Pixelmatch JavaScript 库的 PHP 封装。
以下是一个使用该包的快速示例。
use Spatie\Pixelmatch\Pixelmatch; $pixelmatch = Pixelmatch::new("path/to/file1.png", "path/to/file2.png"); $pixelmatch->matchedPixelPercentage(); // returns a float, for example 97.5 $pixelmatch->mismatchedPixelPercentage(); // returns a float, for example 2.5
支持我们
我们投入了大量资源来创建 一流的开放式源代码包。您可以通过 购买我们的付费产品之一 来支持我们。
我们非常感谢您从家乡给我们寄来明信片,说明您正在使用哪些我们的包。您可以在 我们的联系页面 上找到我们的地址。我们将在 我们的虚拟明信片墙上 发布所有收到的明信片。
安装
您可以通过 composer 安装此包
composer require spatie/pixelmatch-php
在您的项目或服务器上,您必须安装 JavaScript 包 Pixelmatch
。
npm install pixelmatch
... 或 Yarn。
yarn add pixelmatch
确保您已安装 Node 16 或更高版本。
用法
以下是如何获取两张图像之间匹配像素百分比的示例。
use Spatie\Pixelmatch\Pixelmatch; $pixelmatch = Pixelmatch::new("path/to/file1.png", "path/to/file2.png"); $pixelmatch->matchedPixelPercentage(); // returns a float, for example 97.5 $pixelmatch->mismatchedPixelPercentage(); // returns a float, for example 2.5
要获取匹配和不匹配像素的数量,您可以使用这些方法。
use Spatie\Pixelmatch\Pixelmatch; $pixelmatch = Pixelmatch::new("path/to/file1.png", "path/to/file2.png"); $pixelmatch->matchedPixels(); // returns an int $pixelmatch->mismatchedPixels(); // returns an int
您可以使用 matches function
来检查图像是否匹配。
use Spatie\Pixelmatch\Pixelmatch; $pixelmatch = Pixelmatch::new("path/to/file1.png", "path/to/file2.png"); $pixelmatch->matches(); // returns a boolean $pixelmatch->doesNotMatch(); // returns a boolean
设置阈值
要设置不匹配像素数量的阈值,您可以使用 threshold
方法。更高的值将使比较更敏感。阈值应在 0 到 1 之间。
如果您不设置阈值,我们将使用默认值 0.1
。
$pixelmatch->threshold(0.05);
忽略反走样
要忽略反走样像素,您可以使用 includeAa
方法。
$pixelmatch->includeAa();
限制
该包只能比较 png 图像。
不同尺寸的图像无法比较。如果您尝试这样做,将抛出 Spatie\Pixelmatch\Exceptions\CouldNotCompare
异常。
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。