Skip to content

Find dominant colors in an image using K-means clustering

License

Notifications You must be signed in to change notification settings

dib258/laravel-dominant-color

 
 

Repository files navigation

Laravel Dominant Color

This laravel package is made from a fork of naomi/php-dominantcolor repository

This laravel package extracts dominant colors from images - those, which are most likely to attract the viewer's eyes.

Album arts example

The library uses K-means clustering method to group image pixels into different color bins. Those colors are then evaluated by their saturation and differences between others. Two of them are picked as most prominent (primary and secondary).

Requirements

  • PHP 8 or higher
  • Laravel 8 or higher

Installation

Install the package in your application by running

composer require capsulescodes/laravel-dominant-color

Usage

We want to find most prominent colors with three additional colors from image heart.png.

You can acces the DominantColor via Facade like the following :

$imageSrc = "heart.png";
$totalNumberOfColors = 5; // primary + secondary + 3 additional

DominantColor::fromFile($imageSrc, $totalNumberOfColors);

Number of colors is the number of color bins, it also should include primary and secondary colors.

The result is an array of following structure:

$colorInfo = [
	'primary' => 0xDEFDEF,
	'secondary' => 0xABCABC,
	'palette' => [
		0 => ['color' => 0xABCABC, 'score' => 0.8],
		/// etc
	];

All colors are formatted as standard RGB integer in form: 0xRRGGBB.

palette contains additional colors. The score field is a score from secondary color choosing algorithm. The chosen secondary color has value of 1.0.

See examples directory for a visual demonstration.

This project relies on the elegant PHP K-Means library by Benjamin Delespierre.

About

Find dominant colors in an image using K-means clustering

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%