1
16進数の色#000000値のリストがあります。どのように私はjavascriptを使用して16進数の色のリストから最も明るい色を得ることができますか?javascriptを使用して16進値のリストから最も明るい色を得る方法
任意の助けが理解されるであろう16進数の色#000000値のリストがあります。どのように私はjavascriptを使用して16進数の色のリストから最も明るい色を得ることができますか?javascriptを使用して16進値のリストから最も明るい色を得る方法
任意の助けが理解されるであろうこのformulaによれば、このようなRGB色の輝度(明るさ)を計算することができる:
L = 0.2126*R + 0.7152*G + 0.0722*B;
あなたがヘクスにこれを適用することができないであろう難しいこと、次いで、最大輝度で色を得る:
function lum(hex) {
var r = parseInt(hex.substr(1, 2), 16),
g = parseInt(hex.substr(3, 2), 16),
b = parseInt(hex.substr(5, 2), 16);
return 0.2126*r + 0.7152*g + 0.0722*b;;
}
function lightest(colors) {
var maxIndex = 0,
maxLum = lum(colors[0]);
for(var i = 1; i < colors.length; i++) {
var iLum = lum(colors[i]);
if(maxLum < iLum) {
maxLum = iLum;
maxIndex = i;
}
}
return colors[maxIndex];
}
console.log(lightest(["#ff0000", "#ffcd00", "#000000"]));
リストが#000000の値ならば、それらはすべて同じです:p –
#FF0000と#00FF00の間で最も軽いと考えているのは何ですか? – Kaiido
@Kaiidoよく、#FF0000と#0000FFの間で、最も明るいのは#00FF00でなければなりません:) – bvj