Unify colour algorithm output

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
John Molakvoæ (skjnldsv) 2018-05-07 10:50:33 +02:00
parent eea6f74ca4
commit ed4309ce41
No known key found for this signature in database
GPG Key ID: 60C25B8C072916CF
2 changed files with 17 additions and 8 deletions

View File

@ -62,13 +62,16 @@
(function ($) {
String.prototype.toRgb = function() {
var hash = this.toLowerCase().replace(/[^0-9a-f]+/g, '');
// Normalize hash
var hash = this.toLowerCase();
// Already a md5 hash?
if( !hash.match(/^[0-9a-f]{32}$/g) ) {
if( hash.match(/^([0-9a-f]{4}-?){8}$/) === null ) {
hash = md5(hash);
}
hash = hash.replace(/[^0-9a-f]/g, '');
function Color(r,g,b) {
this.r = r;
this.g = g;
@ -116,7 +119,7 @@
var result = Array();
// Splitting evenly the string
for (var i in hash) {
for (var i=0; i<hash.length; i++) {
// chars in md5 goes up to f, hex:16
result.push(parseInt(hash.charAt(i), 16) % 16);
}

View File

@ -408,14 +408,20 @@ class Avatar implements IAvatar {
}
/**
* @param string $text
* @param string $hash
* @return Color Object containting r g b int in the range [0, 255]
*/
public function avatarBackgroundColor(string $text) {
$hash = preg_replace('/[^0-9a-f]+/', '', $text);
public function avatarBackgroundColor(string $hash) {
// Normalize hash
$hash = strtolower($hash);
// Already a md5 hash?
if( preg_match('/^([0-9a-f]{4}-?){8}$/', $hash, $matches) !== 1 ) {
$hash = md5($hash);
}
$hash = md5($hash);
$hashChars = str_split($hash);
// Remove unwanted char
$hash = preg_replace('/[^0-9a-f]+/', '', $hash);
$red = new Color(182, 70, 157);
$yellow = new Color(221, 203, 85);