2011-10-05 4 views
1

파이썬에서는 CSS 배경색으로 사용할 수있는 모델 (장고)의 기본 키에서 6 자리 16 진수를 생성합니다 페이지의 div에 대한다음 기본 키와 크게 다른 기본 키에서 CSS 배경색을 생성

두 개의 기본 키가 서로 가까이있는 경우 어떻게하면 눈에 띄게 다른 색상을 생성 할 수 있습니까? 예를 들어 기본 키 24 및 25를 사용하면 거의 동일한 색상의 검정색을 제공합니다.

>>>format(24, "06X") 
000018 

>>>format(25, "06X") 
000019 

나는 기본 키 단위로 빨간색과 녹색으로 서로 다른 색상을 얻을 수 있다면 그것은 좋은 것입니다.

+1

왜 고정 세트를 반복 할 수 없습니까? 예 :'thiscss = colors [id % len (colors)]' – riffraff

+0

@ 감사합니다. 그것은 아주 잘 작동하는 것 같습니다. – Neil

답변

0

키에서 색상을 전혀 생성하지 않는 것이 가장 좋습니다. 하지만 /해야 할 경우 숫자를 24 비트로 요약 할 수 있습니다. 그런 다음 번호를 반대로하십시오. 가장 낮은 비트가 이제 가장 높게됩니다.

이 방법을 사용하면 조금 더 멀리있는 숫자가 여전히 매우 같을지라도 1 씩 늘릴 수 있습니다.

0
import md5, struct 

def pseudorandom_color_from_int(value): 
    return md5.md5(struct.pack('i', value)).hexdigest()[:6] 

사용 예 :

>>> print map(pseudorandom_color_from_int, (24, 25, 26)) 
['503533', '2b197a', 'ed69df'] 

색상은 무작위로 나타납니다,하지만 같은 색상이 항상 특정 정수 값에서 발생합니다 그래서 그들은, 결정적이다.

+0

그러나 두 개의 키가 (거의) 같은 색을 띄게 될 가능성은 여전히 ​​있습니다. 기회는 적지 만. – GolezTrol

관련 문제