skyree / php-colorpicker
从图像中选择一组主要颜色
v1.0.0
2019-04-19 07:57 UTC
Requires
- php: >=7.1
- ext-imagick: *
- bdelespierre/php-kmeans: @dev
This package is auto-updated.
Last update: 2024-09-19 20:50:25 UTC
README
从图像中选择一组主要颜色
要求
- php 7.1
- ext-imagick
安装
克隆或下载仓库,然后运行 composer install
演示
为了使用演示,运行以下命令
cd demo
php -S localhost:8000
并在浏览器中打开 localhost:8000
的 URL
入门
在文件中使用 Lol\ColorPicker\ColorPicker
类
用法示例
$imageUrl = 'http://some.website/some/image.ext'; $colorPicker = new ColorPicker(); $palette = $colorPicker->pick($imageUrl, ColorPicker::KMEANS, 7, 150); foreach ($palette as $cluster) { echo sprintf("#%02x%02x%02x", ...$cluster['color']) . PHP_EOL; // will print up to 5 hex codes }
选项
ColorPicker::pick($imageUrl, $algorithm, $paletteSize, $resize);
$imageUrl
是您想要从中选择颜色的图像的 URL$algorithm
是要在ColorPicker::KMEANS
、ColorPicker::WEIGHTED_KMEANS
、ColorPicker::LOCAL_MAXIMA
中使用的算法$paletteSize
是您想要选择的主要颜色的最大数量$resize
是图像应该调整大小的宽度,可以留空$quantization
是一个数组,提供量化的颜色空间和颜色数量,格式如下
$quantization = [ 'colorNumber' => 64, 'colorSpace' => 1 // RGB space ];
算法
ColorPicker::KMEANS
使用标准的无监督 Kmeans 或 Kmeans++ 算法来计算 k 个聚类,一些聚类最终可能是空的ColorPicker::WEIGHTED_KMEANS
根据 coordinate 和 weight 计算聚类中心,这是从直方图实现的 KmeansColorPicker::LOCAL_MAXIMA
在量化 rgb 值的 3d 空间中保留其 27 个相邻单元格中的最大值。与量化参数不兼容!ColorPicker::QUANTIZATION
只对颜色进行量化并返回最高的聚类