luci-base: generalize random color generation
Generation of pseudo random hex color from a string can be useful also for other task. Generalize it to make it available also for other purpose. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
This commit is contained in:
parent
1da9df8376
commit
44d02afab1
2 changed files with 19 additions and 15 deletions
|
@ -57,21 +57,7 @@ function getColorForName(forName) {
|
|||
else if (forName == 'wan')
|
||||
return '#f09090';
|
||||
|
||||
random.seed(parseInt(sfh(forName), 16));
|
||||
|
||||
var r = random.get(128),
|
||||
g = random.get(128),
|
||||
min = 0,
|
||||
max = 128;
|
||||
|
||||
if ((r + g) < 128)
|
||||
min = 128 - r - g;
|
||||
else
|
||||
max = 255 - r - g;
|
||||
|
||||
var b = min + Math.floor(random.get() * (max - min));
|
||||
|
||||
return '#%02x%02x%02x'.format(0xff - r, 0xff - g, 0xff - b);
|
||||
return random.derive_color(forName);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -89,5 +89,23 @@ return L.Class.extend({
|
|||
}
|
||||
|
||||
return Math.floor(r * (u - l + 1)) + l;
|
||||
},
|
||||
|
||||
derive_color: function(string) {
|
||||
this.seed(parseInt(sfh(string), 16));
|
||||
|
||||
var r = this.get(128),
|
||||
g = this.get(128),
|
||||
min = 0,
|
||||
max = 128;
|
||||
|
||||
if ((r + g) < 128)
|
||||
min = 128 - r - g;
|
||||
else
|
||||
max = 255 - r - g;
|
||||
|
||||
var b = min + Math.floor(this.get() * (max - min));
|
||||
|
||||
return '#%02x%02x%02x'.format(0xff - r, 0xff - g, 0xff - b);
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue