MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 298: | Строка 298: | ||
} | } | ||
var r, g, b, rgbValues; | var r, g, b, a = 1, rgbValues; | ||
// Проверка | // Проверка на rgb или rgba | ||
rgbValues = color.match(/\d+(\.\d+)?/g); | |||
if (!rgbValues || rgbValues.length < 3) { | |||
return color; // Возвращаем цвет без изменений, если не удалось разобрать | |||
} | |||
// Извлечение r, g, b и, если есть, a | |||
r = parseInt(rgbValues[0], 10); | |||
g = parseInt(rgbValues[1], 10); | |||
b = parseInt(rgbValues[2], 10); | |||
if (rgbValues.length === 4) { | |||
a = parseFloat(rgbValues[3]); | |||
} | |||
var brightness = getBrightness(r, g, b); | |||
var brightnessFactor = brightness < 90 ? factor + 0.04 : factor; | |||
r = Math.min(255, Math.floor(r * brightnessFactor)); | |||
g = Math.min(255, Math.floor(g * brightnessFactor)); | |||
b = Math.min(255, Math.floor(b * brightnessFactor)); | |||
// Возвращаем цвет | |||
return a < 1 ? 'rgba(' + r + ', ' + g + ', ' + b + ', ' + a + ')' : 'rgb(' + r + ', ' + g + ', ' + b + ')'; | |||
} | } | ||