2011-03-29 6 views
10

고객이 색상을 선택하는 응용 프로그램이 있습니다. 이 색상을 너무 밝게 할 수 없습니다. 고객이 너무 가벼운 색상을 선택하지 못하도록하는 방법이 있습니까?rgb 색상이 너무 가벼운 지 확인하는 방법

정말 고마워요! 경우에 너무 밝


내가 흰색 배경과 jQuery 플러그인을 통해 색상을 선택할 수있는 사용자와 웹 사이트를 .... 색상이 거의 흰색입니다.

사용자가 원하는 색상을 선택할 수있게하고 싶지만 너무 밝지는 않습니다.

+1

색상 선택을위한 플러그인을 사용하고 있습니까? 이것은 질문에 포함해야하는 중요한 정보입니다. –

+3

RGB에서 HSV (색상, 채도, 값)로 색상을 변환하고 S 및 V 값을 확인하는 것은 어떻습니까? 그것은 어둠 속에서 단지 발사 일뿐입니다.하지만 제가 시도해 본 첫 번째 것은 –

+3

"너무 가벼운"에 대한 정의가 있습니까? – gailbear

답변

23

대비가 원하는 경우 다음 check out this article. 흰색 텍스트는이 색상의 상단에 읽을 수의 색상이 너무 밝을 경우

function isTooLightYIQ(hexcolor){ 
    var r = parseInt(hexcolor.substr(0,2),16); 
    var g = parseInt(hexcolor.substr(2,2),16); 
    var b = parseInt(hexcolor.substr(4,2),16); 
    var yiq = ((r*299)+(g*587)+(b*114))/1000; 
    return yiq >= 128; 
} 

// usage: 
element.style.color = isTooLightYIQ('ff0045') ? '#000' : '#fff'; 

위의 함수는 true를 돌려줍니다 :

그들은 임의의 색상을 기반으로 텍스트 색상을 선택하려면이 같은 기능을 보여 .

+0

멋진 코드 조각을 공유해 주셔서 감사합니다. – Zl3n

0

'너무 가벼운'상대적인 것? 어떤 이미지? 순수한 흰색? 회색의 그늘? 가장 쉬운 방법은 사용자가 (128,0,0)을 선택하고 (127,0,0) 이미지에 붙여 넣을 때 도움이되지 않지만 R, G, B 멤버 값 중 하나가 특정 임계 값 이상인지 확인하는 것입니다. , 0,0) - 차이는 (1,0,0)이며 대부분의 모니터에서 눈에 보이지 않거나 거의 불가능합니다.

-1

당신은 너무 구체적되고 있지만, 가정 자바 스크립트를 사용하고,

var v = Math.round((r+g+b)/3)을하고 특정 임계 값 미만인지 확인하지 않는?

또한 색상은 어떤 모양입니까? RGB? HSL? 마녀?

관련 문제