kiritokatklian / laravel-color-palette
Laravel 对 `ksubileau/color-thief-php` 的封装。从图片中提取主色或代表色板。使用 PHP 和 GD 或 Imagick。
4.0.1
2024-05-25 16:08 UTC
Requires
- php: ^8.2
- illuminate/support: ^11.0
- ksubileau/color-thief-php: ^v2.0
Requires (Dev)
- larastan/larastan: ^2.0
- laravel/pint: ^1.0
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^11.0
README
Laravel 对 Color-Thief-PHP 的封装,并做了额外修改。从图片中提取 主色 或 代表色板。使用 PHP 和 GD 或 Imagick。
此 Laravel 包非常有用,可以从图片中提取 主色 或 代表色板。请参考此图片示例。
内容
安装
您可以通过 Composer 安装此包
$ composer require kiritokatklian/laravel-color-palette
您必须安装服务提供者(适用于 Laravel < 5.5)
// config/app.php 'providers' => [ ... Kiritokatklian\LaravelColorPalette\ColorPaletteServiceProvider::class, ],
注册外观
// config/app.php 'aliases' => [ ... 'ColorPalette' => Kiritokatklian\LaravelColorPalette\ColorPaletteFacade::class, ],
可用方法
-
getColor() - 使用此方法从图片中获取 最显眼的单一颜色
示例
// get most dominant color from image $color = ColorPalette::getColor( 'https://rawcdn.githack.com/kiritokatklian/laravel-color-palette/master/tests/images/strawberry.jpeg' ); // Color provides several getters/properties echo $color; // '#dc5550' echo $color->rgbString; // 'rgb(220,85,80)' echo $color->rgbaString; // 'rgba(220,85,80,1)' echo $color->int; // 14439760 print_r($color->rgb); // array(220, 85, 80) print_r($color->rgba); // array(220, 85, 80, 1)
选项
$color = ColorPalette::getColor($sourceImage, $quality = 10, $area = null );
默认情况下,
getColor
将具有 quality -> 10 和 specific area -> null。Quality
可以是整数。1 是最高质量。质量和速度之间存在权衡。数字越大,调色板生成速度越快,但漏掉颜色的可能性也越大。Area
可以是数组|null $area[x,y,w,h]。它允许您指定图像中的矩形区域,以便只为该区域获取颜色。它需要是一个具有以下键的关联数组- $area['x']: 区域左上角的 x 坐标。默认为 0。
- $area['y']: 区域左上角的 y 坐标。默认为 0。
- $area['w']: 区域的宽度。默认为从 x 坐标减去图像宽度。
- $area['h']: 区域的高度。默认为从 y 坐标减去图像高度。
-
getPalette() - 使用此方法从图片中找到 代表色板
示例
// get colors from image $colors = ColorPalette::getPalette( 'https://github.com/kiritokatklian/laravel-color-palette/blob/master/tests/images/strawberry.jpeg' ); foreach($colors as $color) { // } // Colors will be array of Color Objects
选项
$color = ColorPalette::getPalette($sourceImage, $colorCount = 10, $quality = 10, $area = null)
colorCount
可以是 2 到 256。它是您想要检索的图像中的颜色数量。Quality
&Area
如上所述。
测试
您可以使用以下命令运行测试
$ composer run test
致谢
非常感谢 Nikunj Kanetiya 为创建此包的第一个版本。
图片来源: https://www.pexels.com
, google image
许可证
MIT 许可证 (MIT)。请参阅 许可文件 以获取更多信息。