manticorp/ image-palette
从图片中提取颜色并生成与颜色白名单对应的调色板。
v2.1.0
2017-02-01 09:23 UTC
Requires
- php: >=5.4.0
- ext-gd: *
Replaces
This package is not auto-updated.
Last update: 2024-09-15 03:18:56 UTC
README
ImagePalette用于从指定的图片中提取调色板。除了是原生的PHP实现外,ImagePalette与许多调色板提取器不同,因为它使用白名单调色板。以下为默认调色板
从调色板工作的主要优势是更接近的匹配,因为每个像素只需计算调色板内的颜色距离并选择最佳匹配。这对于处理颜色分类很有用,因为分类应该有有限数量的颜色。
在此处查看此操作的示例:[http://alpha.wallhaven.cc/wallpaper/21852](http://alpha.wallhaven.cc/wallpaper/21852)
要求
PHP >= 5.4
php5-gd
安装
只需将以下内容添加到您的composer.json
文件中
"require": { "manticorp/image-palette": "^2.1" }
用法
// 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 */ );
颜色数量
要控制返回的颜色数量,请设置第三个参数。您还可以向getter提供自定义长度。
$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