brianmcdo / image-palette
从图片中提取颜色并生成与颜色白名单相匹配的颜色调色板。
v2.0.1
2015-10-25 01:38 UTC
Requires
- php: >=5.4.0
- ext-gd: *
Replaces
This package is auto-updated.
Last update: 2024-08-26 04:11:36 UTC
README
ImagePalette 用于从指定的图片中提取颜色调色板。除了是原生 PHP 实现,ImagePalette 与许多调色板提取器不同,因为它基于白名单调色板。下面是默认调色板
从颜色调色板工作的主要优势是更接近匹配,因为每个像素只需在调色板中计算颜色距离并选择最佳匹配。这对于与颜色分类法一起使用很有用,因为分类法应该有有限数量的颜色。
在此处查看该功能的示例: http://alpha.wallhaven.cc/wallpaper/21852
要求
PHP >= 5.4
php5-gd
安装
只需将以下内容添加到您的 composer.json
文件中
"require": { "brianmcdo/image-palette": "dev-master" }
用法
// initiate with image $palette = new \BrianMcdo\ImagePalette\ImagePalette( 'https://www.google.co.uk/images/srpr/logo3w.png' ); // get the prominent colors $colors = $palette->colors; // array of Color objects // to string as json echo $palette; // '["#ffffdd", ... ]' // implements IteratorAggregate foreach ($palette as $color) { // Color provides several getters/properties echo $color; // '#ffffdd' echo $color->rgbString; // 'rgb(255,255,221)' echo $color->rgbaString; // 'rgba(255,255,221,0.25)' echo $color->int; // 0xffffdd echo $color->rgb; // array(255,255,221) echo $color->rgba; // array(255,255,221,0.25) // ... }
就这样!
Laravel 4
在 app/config/app.php
中找到 providers
键并注册 ImagePaletteServiceProvider
'providers' => array( // ... 'BrianMcdo\ImagePalette\Laravel\ImagePaletteServiceProvider', )
然后,在 app/config/app.php
中找到 aliases
键并注册 ImagePaletteFacade
'aliases' => array( // ... 'ImagePalette' => 'BrianMcdo\ImagePalette\Laravel\ImagePaletteFacade', )
示例
$fileOrUrl = 'https://www.google.com/images/srpr/logo11w.png'; ImagePalette::getColors($fileOrUrl);
选项
精度
默认情况下,ImagePalette
将处理每 10 个像素。这是出于性能考虑,您可以像下面这样更改它。精度是性能与时间之间的权衡。
$palette = new \BrianMcdo\ImagePalette\ImagePalette( $src, 5 /* precision */ );
颜色数量
要控制返回的颜色数量,请设置第三个参数。您还可以向获取器提供自定义长度。
$palette = new \BrianMcdo\ImagePalette\ImagePalette( $src, 5, 3 /* number of colors to return */ ); $colors = $palette->getColors(7 /* number of colors to return */);
贡献指南
请参阅: https://github.com/brianmcdo/ImagePalette/blob/master/CONTRIBUTING.md