2016-04-18 12 views
5

Webgl'de küçük bir projet yapmalı ve rengi html'den javascript'e aktarmalıyım, şey Rgb'de webGl ile direk olarak çalışmaya ihtiyacım var. bilmeniz gereken şey rtb'de girişi almak için html5 kullanmanın bir yolu.Html Rgb rengi al

Im bunu yaparken i bana onaltılık değerini verir bu renk elde etmek için çalışırsanız

<input type="color" onchange="cor()" id="color"> 
burada prob, ben bir işlevle javascript aracılığıyla i onaltılık rgb ama dönüştürmek biliyor edilir

Bunu yapmanın ve işe koymanın daha kolay bir yolu olup olmadığını bilmek gerekir.

cevap

5

Neyse ki, HTML5'teki renk değerleri yalnızca #XXXXXX biçiminde olduklarında geçerlidir (rgb(...) ve #XXX geçersizdir). ,

#XXXXXX 
#RRGGBB 

rgb(...) bu dönüştürmek için biz sadece # karakterini şerit gerekiyor ve RR dönüştürmek: Biz her zaman bildiğimiz gibi RGB pozisyonları çıkan değer olacak tam olarak nerede lehimize için kullanabilir

// #XXXXXX -> ["XX", "XX", "XX"] 
var value = value.match(/[A-Za-z0-9]{2}/g); 

// ["XX", "XX", "XX"] -> [n, n, n] 
value = value.map(function(v) { return parseInt(v, 16) }); 

// [n, n, n] -> rgb(n,n,n) 
return "rgb(" + value.join(",") + ")"; 

ve JavaScript güzelliği ile, hepimiz kod tek bir satırda yapabilirsiniz: GG ve BB değerleri onluya

return "rgb(" + "#FF0000".match(/[A-Za-z0-9]{2}/g).map(function(v) { return parseInt(v, 16) }).join(",") + ")"; 
-> "rgb(255,0,0)" 
+2

Teşekkürler, Html5 üzerinde çok fazla geliştirme yapmak için neden sadece bir inputType = RgbColor veya bir şey –

+0

@FilipeCosta koymayın, çünkü farklı renk türlerinden * lot * vardır. Onaltılık notasyonun kendisinin farkında olduğu 4 tanınmış format var ('# RGB',' # RGBA''', '# RRGGBB' ve '# RRGGBBAA''). Hangi formatların kabul edilmesi gerektiği konusunda uzun tartışmalar yapılmalıdır. Muhtemelen HTML'nin gelecekteki bir baskısında böyle bir şey göreceğimizi hayal ediyorum. –