Bir rengin koyu mu açık mı olduğu nasıl anlaşılır ?

Web uygulamalarında kullanıcıların arkaplan renk seçimine izin verdiğiniz senaryolarda, bu arkaplan renginin koyuluğu arkaplanın üstüne gelecek yazının rengini belirlemede önemli bir değişkendir. Diğer bir deyişle, rengini önceden bilmediğiniz arkaplanlar için yazı rengi belirlemenizi gerektirecek durumlar oluşabilir. Bu gibi durumlarda rengi belirlemek için kullanabileceğiniz bir algoritma mevcut. Bu sayede koyu arkaplanlar için açık yazı rengi, açık arkaplanlar için koyu yazı rengi belirleyebilirsiniz.

CSS ile renk değeri belirlerken RGB renk uzayı kullanabiliyoruz. RGB (Red,Green,Blue) her ana renk değeri 0-255 arası değerler(tonlar) alabilir. Dolayısıyla bu aralıkta insan gözünün ayırt edebileceği hemen her renk oluşturulabilir.

Yapılacak hesapta bu renk değerleri ayrı ayrı bazı sabitlerle çarpılacak ve en son bir referans değerle karşılaştırılacaktır.

Formül :  ((RED * 299) + (GREEN* 587) + (BLUE* 114)) / 1000.

Buradan elde ettiğiniz değeri 125 ile karşılaştırdığınızda, değer 125’ten küçük ise arkaplan koyu renklidir, 125’ten büyük ise arkaplan açık renklidir kararını verebilirsiniz. 125 karşılaştırma değerini aldığınız sonuçlar sizi tatmin edene kadar değiştirebilirsiniz. Benim denemelerimde 125 karşılaştırması yeterli ayrımı verdi.

İyi çalışmalar dilerim.

Konunun StackOverflow başlığı : http://stackoverflow.com/questions/2509443/check-if-uicolor-is-dark-or-bright

screen-shot-2016-09-18-at-22-05-58

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir