bfoxwell/image-palette

此包已被弃用且不再维护。作者建议使用brianmcdo/image-palette包。

从图片中提取颜色并生成一个与颜色白名单相匹配的颜色调色板。

v2.0.1 2015-10-25 01:38 UTC

This package is auto-updated.

Last update: 2019-10-25 18:11:15 UTC


README

Build Status Total Downloads Latest Stable Version Scrutinizer Code Quality

ImagePalette用于从指定图像中提取颜色调色板。除了是原生PHP实现外,ImagePalette与许多调色板提取器不同,因为它基于白名单颜色调色板。以下是默认调色板

使用颜色调色板的优势在于更接近的匹配,因为每个像素只需计算调色板中的颜色距离并选择最佳匹配。这对于与颜色分类法一起使用很有用,因为分类法应该有有限数量的颜色。

请在此处查看此功能的示例:[http://alpha.wallhaven.cc/wallpaper/21852](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](https://github.com/brianmcdo/ImagePalette/blob/master/CONTRIBUTING.md)