vongola12324 / laravel-color-hash
ColorHash Library for Laravel 5.0+
2.0.0
2020-07-22 08:58 UTC
Requires
- php: >7.2
- illuminate/support: ^5.0|^6.0|^7.0|^8.0
Requires (Dev)
- phpunit/phpunit: ^7.0|^8.0
- squizlabs/php_codesniffer: 3.*
README
ColorHash Library for Laravel 5.0+. Port from zenozeng/color-hash.
Installation
composer require vongola12324/laravel-color-hash
Usage
Basic
// in HSL, Hue ∈ [0, 360), Saturation ∈ [0, 1], Lightness ∈ [0, 1] ColorHash::hsl('Hello World'); // [185, 0.35, 0.35] // in RGB, R, G, B ∈ [0, 255] ColorHash::rgb('Hello World'); // [58, 115, 120] // in HEX ColorHash::hex('Hello World'); // '#3a7378'
Custom
// Custom Hash Function $hashFunc = function ($string) { $hash = 0; for ($i = 0; $i < strlen($string); $i++) { $hash += ord($string[$i]); } return $hash; } ColorHash::customHash($hashFunc)->rgb('Hello World'); // [31, 147, 109] // Custom Hue ColorHash::customHue(90)->rgb('Hello World'); // [89, 120, 58] ColorHash::customHue(['min' => 90, 'max' => 270])->rgb('Hello World'); // [58, 118, 120] ColorHash::customHue([['min' => 30, 'max' => 90], ['min' => 180, 'max' => 210], ['min' => 270, 'max' => 285]])->rgb('Hello World'); // [120, 100, 58] // Custom Saturation ColorHash::customSaturation(0.5)->rgb('Hello World'); // [45, 126, 134] ColorHash::customSaturation([0.35, 0.5, 0.65])->rgb('Hello World'); // [58, 115, 120] // Custom Lightness ColorHash::customLightness(0.5)->rgb('Hello World'); // [83, 165, 172] ColorHash::customLightness([0.35, 0.5, 0.65])->rgb('Hello World'); // [58, 115, 120]
All customXXX method can be used in a single custom method by passing an option array, for example:
ColorHash::customHue(90)->rgb('Test'); // Is Equal to ColorHash::custom(['hue' => 90])->rgb('Test');
Also can combine with more than one custom option, for example:
ColorHash::customHue(90)->customSaturation(0.5)->customLightness(0.5)->customHash($hashFunc)->rgb('Test'); // Is Equal to ColorHash::custom(['hue' => 90, 'saturation' => 0.5, 'lightness' => 0.5, 'hash' => $hashFunc])->rgb('Test');
License
MIT.