LaravelPackages.net
Acme Inc.
Toggle sidebar
manticorp/image-palette

Extracts colors from an image and generates a color palette against a whitelist of colors.

87
0
v2.1.0
About manticorp/image-palette

manticorp/image-palette is a Laravel package for extracts colors from an image and generates a color palette against a whitelist of colors.. It currently has 0 GitHub stars and 87 downloads on Packagist (latest version v2.1.0). Install it with composer require manticorp/image-palette. Discover more Laravel packages by manticorp or browse all Laravel packages to compare alternatives.

Last updated

ImagePalette

Build Status Total Downloads Latest Stable Version Scrutinizer Code Quality

ImagePalette is used to extract a color palette from a given image. Aside from being a native PHP implementation, ImagePalette differs from many palette extractors as it works off a white list color palette. Below is the default palette:

The main advantage of working from a color palette is closer matching, as each pixel simply has to calculate the color-distance within the palette and chose the best match. This is useful for working with color taxonomies as the taxonomy should have a finite amount of colors.

See an example of this in action here: http://alpha.wallhaven.cc/wallpaper/21852

Requirements

PHP >= 5.4 php5-gd

Installation

Simply add the following to your composer.json file:

"require": { "manticorp/image-palette": "^2.1" }

Usage

// 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) // ... }

And there we go!

Laravel 4

Find the providers key in app/config/app.php and register the ImagePaletteServiceProvider:

'providers' => array(
    // ...
    'BrianMcdo\ImagePalette\Laravel\ImagePaletteServiceProvider',
)

Then, find the aliases key in app/config/app.php and register the ImagePaletteFacade:

'aliases' => array(
    // ...
    'ImagePalette' => 'BrianMcdo\ImagePalette\Laravel\ImagePaletteFacade',
)

Example:

$fileOrUrl = 'https://www.google.com/images/srpr/logo11w.png';

ImagePalette::getColors($fileOrUrl);

Options

Precision

By default, ImagePalette will process every 10th pixel. This is for performance reasons, you can change this like below. The precision is a performance-to-time decision.

$palette = new \BrianMcdo\ImagePalette\ImagePalette( $src, 5 /* precision */ );

Color Count

To control the amount colors returned set the third parameter. You can also provide the getter with a custom length.

$palette = new \BrianMcdo\ImagePalette\ImagePalette( $src, 5, 3 /* number of colors to return */ ); $colors = $palette->getColors(7 /* number of colors to return */);

Contribution guidelines

See: https://github.com/brianmcdo/ImagePalette/blob/master/CONTRIBUTING.md

Comments