Eğer onaltılık renk olduğunu kontrol etmek için nasıl "black"?
Bir renk Eğer", ve eğer öyleyse, beyaz olarak ayarlayın." çok siyah diye bir renk seçici tarafından seçilen karanlığı değerlendirmek için çalışıyorum Hex değeri ilk karakter bu koparmak için kullanabileceğimi düşündüm. İşe yarıyor, ama bazı meşru "light" rengi çok açık. geçiş.
Kod bu işi var:
if (lightcolor.substring(0,3) == "#00"|| lightcolor.substring(0,3) == "#010"){
lightcolor="#FFFFFF";
color=lightcolor;
}
Bir renk karanlığa belirli bir düzeyde ötesine gittiğini bilmek hex matematik ile daha verimli bir yolu olmalı? Lightcolor gibi "bazı hex değeri" &;= lt "bazı hex değeri" sonra beyaz.. . set
Kullanım olabilir tinyColor, bunun için ekledim, ama emin için bilmiyorum
Çok teşekkürler!
CEVAP
Üç RGB bileşenleri tek tek extact için var, ve sonra standart bir formül algılanan parlaklık içine çıkan RGB değerleri dönüştürmek için kullanın.
Altı karakter bir renk varsayarsak:
var c = c.substring(1); // strip #
var rgb = parseInt(c, 16); // convert rrggbb to decimal
var r = (rgb >> 16) & 0xff; // extract red
var g = (rgb >> 8) & 0xff; // extract green
var b = (rgb >> 0) & 0xff; // extract blue
var luma = 0.2126 * r 0.7152 * g 0.0722 * b; // per ITU-R BT.709
if (luma < 40) {
// pick a different colour
}
tinycolor(c).toRgb()
RGB bileşenleri de ayıklamak için kullanabilirsiniz.
Bir dize kontrol etmek için nasıl &quo...
Nasıl eğer bir sayı 2 Bir güç olduğunu...
Eğer nasıl MUAYENE imzalanmış veya &qu...
Nasıl kontrol etmek için Python metin ...
Nasıl bir dize kontrol etmek için geçe...