Bir arka plan rengi, siyah veya beyaz metin verilen?

5 Cevap php

Ben (bir onaltılık değer olarak) bir arka plan renk verilmiş, siyah veya beyaz metin kullanmak belirlenmesi için bir yöntem bulmak için çalışıyorum. Herkes önce bu ele? Bunu yapmak için etkili bir yol var mı?

(Diğer dillerde bu ile herhangi bir deneyim hoş olsa da) benim durumumda, ben mantığını uygulamak için PHP kullanarak olacaktır.

5 Cevap

Bu sayfada bir göz atın: Calculating Color Contrast with PHP

Siyah ve beyaz eğer bunlardan hiçbiri özellikle büyük işler davaları var uğrarsınız tek seçenek olduğunu unutmayın.

İşte metin bir parlaklık kontrast oranı hesaplamak için kullanılan bir algoritma:

http://juicystudio.com/services/aertcolourcontrast.php

Size daha yüksek bir oran verir hesaplamak için beyaz ve siyah değerleri ile bu formülü kullanmak ve böylece daha okunabilir bir metin olabilir.

Sen the CSS Color library bir göz atmalısınız. PHP uygulanan ve sizin için tüm zor işleri yapar bulunuyor.

Mükemmel bir basit ama çözüm tek tek bileşenleri (RGB) ve büyük bu değeri 'açık renk' toplamak olacaktır. Yani yüksek bir değer için siz ön planda siyah olarak kullanabilirsiniz, ve düşük bir değer için, beyaz kullanın.

Daha sonra (R = G = B), olan, çok koyu gri iyi dışında beyaz metnini görüntülemek olmaz gri tonlama renkler için özel durumları yapım, bu yöntemi geliştirmek olabilir.

Edit: Bu tabii sizin onaltılık değer RGB depolama biçimini bilmek gerekiyor demektir, standart 24bpp depolama 8 onaltılık basamak için 0x00RRGGBB olduğunu.

i rgb bileşenlerinin ortalama değerini hesaplamak ve sonra örneğin, siyah veya beyaz kullanmaya karar verecek beyaz 0x66 kadar