Hex web renkleri

6 Cevap php

Merhaba ben php bir onaltılık değer olarak bir renk gösteren duyuyorum. Bu onaltılık değeri bir sayı çıkarılarak rengin tonu değişir mümkün mü? Ben ne yapmak istiyorum bu canlı web güvenli renk görüntüleyebilirsiniz ancak seçildiği takdirde ben donuk istiyorsanız veya rengini açmak. Ben sadece renkteki iki tonları kullanabilirsiniz biliyorum ama olası renk yüz olabilir.

clear # 66CC00 olmak parlak yeşil ve # 99ffcc çok uçuk yeşil olur. Ne i ikinci bir renk elde etmek için çıkarma mı? Ben sadece bunu elde edebilirsiniz, çünkü herhangi bir formül var.

Herhangi bir yardım için teşekkür ederiz

Şerefe

6 Cevap

Hex renk 6 onaltılık basamak oluşur. İlk iki rakam kırmızı gölge için, ikinci iki yeşil için, ve son iki mavi için vardır. Tonları içinde, 00 renk olmaması ve FF renk için en yüksek değerdir. Yani, #FF0000 ile kırmızı parlak olacağını hiç yeşil veya mavi, ve #00CCFF tüm çok mavi ve hiçbir kırmızı bir küçük yeşil olacaktır.

Verdiğiniz örnek renkler aslında, kırmızı, yeşil ve mavi farklı bir makyaj var. #66CC00 #99FFCC çoğunlukla yeşil bazı kırmızı süre çoğunlukla yeşil, bazıları mavi ve kırmızı.

Sen ondalık dönüştürmeden önce renkleri kendi, kırmızı, yeşil ve mavi bileşenleri girmeye gerektiğini, iki ortalama, ve sonra geri dönüştürmek:

#66 CC 00 -> 102 204 0

#99 FF CC -> 153 255 204

Ortalama ikisi arasında: 128 230 102, #80E666

Arasındaki renk, size en yakın web uyumlu renk yaklaşık edebilirsiniz bulduktan sonra: #99FF66

Bu kendiniz yapmak için onaltılık ve ondalık arasında bir dönüştürücü bulunabilir here.

Here is a PHP script Bu ne ihtiyacınız yok. Burada (hex to decimal conversion in JS ilgili), yukarıda tarif edilen yönteme göre kapalı bir JavaScript komut dosyası:

color1 = "#66CC00";
color2 = "#99FFCC";

r1 = parseInt(color1.substring(1,3), 16);
g1 = parseInt(color1.substring(3,5), 16);
b1 = parseInt(color1.substring(5,7), 16);
r2 = parseInt(color2.substring(1,3), 16);
g2 = parseInt(color2.substring(3,5), 16);
b2 = parseInt(color2.substring(5,7), 16);

r3 = (Math.round((r1 + r2)/2)).toString(16);
g3 = (Math.round((g1 + g2)/2)).toString(16);
b3 = (Math.round((b1 + b2)/2)).toString(16);

color3 = "#" + r3 + g3 + b3;

Ayrıca bu açıklamaya:

Tamamen beyaz, # FFFFFF atın.

Aslında 3 ayrı renk değerleri Kırmızı Yeşil ve Mavi oluşur.

FF (yeşil tam 255) (255, tam kırmızı), FF, FF (255 tam mavi)

Tam bir kırmızı renk isteseydiniz bunun yerine (255, 0, 0) # FF0000 kullanmak istiyorsunuz

Renk değerleri 0-255 gider ve nihai rengi elde etmek colorvalues ​​birleştirir.

Gerçekten renkleri ile ne olup bittiğini anlamak için yardımcı olur, ancak bir renk gölgelendirme de sadece ilgileniyorsanız, here 's ben php.net ne buldum. (Henüz) zor denedim değil, sizin ihtiyaçlarınıza uygun umuyoruz.

Bu onaltılık taban denir:

1 2 3 4 5 6 7 8 9 A B C D E F

"E" onaltılık (16) taban ondalık (10) üssü "14" dir

66CC00 (16) == 6.736.896 (10)

99ffcc (16) == 10092492 (10)

Web renkler, kırmızı, yeşil ve mavi değerleri ile belirtilir. Her bileşen 00 (0) FF (255) için bir değeridir. Bir bileşenin daha parlak bileşeninin görünür yoktur. Her üç bileşeni aynı iseniz (#000000) beyaz siyah gri tonları olsun (#ffffff).

Bu yüzden ilk örnekte yeşil bazı kırmızı ve bir çok şey var. Lütfen saniye içinde bütün renk hafif yapar, her rengin daha var. Yeşil hala bir soluk renk neden olsa hangi ana bileşenidir.

Bir renk diğerine değiştirmek için her bileşenin değerlerinin değiştirilmesi gerekir, ama her zaman başka bir değerden çıkarılarak kadar basit değil.

Ne sizin ikinci renk için ilk almak için ulaşmak için çalışıyoruz?

Web renk RGB içindedir. Renk etkilemeden renk doygunluğu ve değerini etkileyebilecek için, HSV renk uzayı dönüştürmek gerekir.

http://stackoverflow.com/questions/1773698/rgb-to-hsv-in-php

Eğer HSV var, bir renk daha koyu veya daha açık yapmak ve renk daha fazla veya daha az doymuş veya soluk yapmak için S bileşeni değiştirmek için V bileşeni değiştirin. S ve V verdiği sonra geri RGB dönüştürmek. 51 ya da 0x33 katlarına her RGB kanala yuvarlak, renkleri web güvenli hale getirmek için.