파이톤으로 색조를 계산하는 색 코드
13436 단어 Python
운영 환경
Ubuntu Stdio 18.04LTS
Python 3.6.5
파이톤의 세계지도-14(착색 도도부현)
https://qiita.com/ty21ky/items/097e0c362586109b8ca2
하지만 어떻게 해야 할지 모르겠어요.
인터넷에서 찾으면 같은 일을 하는 코드가 있는데 제 게임에서 뭘 하는지 모르겠어요.물론 잘못했으니 움직일 수 없다.
인터넷에서 검색해도 찾을 수 없고 자기가 생각해도 색깔이 잘 모르겠어요. 그래서???
신호 함수로 열 이미지 스타일의 색 변화를 재현하다
https://qiita.com/masato_ka/items/c178a53c51364703d70b
그리고 비슷한 글을 썼어요.
하지만 내 생각과는 좀 다르다.
이 도표를 보고 대체로 이해하였다.
나는 내 수준으로는 완성할 수 있을 것 같은 위의 그림으로 인코딩을 했다.
죄송합니다. 코드가 안 좋아요.
댓글창에 좋은 코드를 알려줬어요.아래의 코드를 보지 말고 주석란의 코드를 보십시오.
#!/usr/bin/python3
# coding: UTF-8
def rgb2hex(r,g,b): #RGB配列からHTMLなどに使われる16進数表現へ
# r , g , b = 0 〜 255 # int型
color = (r, g , b)
html_color = '#%02X%02X%02X' % (color[0],color[1],color[2])
return html_color
def make_color_code(n,n1,gray = False):
#nは3の倍数とする。(3,6,9,12・・・)
#引数:n=色数、n1=色番号、gray=False(白黒を使用しない),True(使用する)
#n1=0とn1=nは赤色なので、n1=nは赤として使用しない。gray=Trueの時は白とする。
if n % 3 != 0:
return 'Error:nが3の倍数では無い'
area1 = n/3 #0 〜 n/3
area2 = 2/3*n #n/3 < 〜 2/3*n
area3 = n #2/3*n < 〜 n
if n1 == 0:
return '#FF0000' #赤
elif n1 < area1:
y1r = 255*(-3/n*n1+1)
y1g = 255*3*n1/n
y1b = 0
return rgb2hex(int(y1r),int(y1g),int(y1b))
elif n1 == n/3:
return '#00FF00' #緑
elif n1 < area2:
y2r = 0
y2g = 255*(-3*n1/n+2)
y2b = 255*(3*n1/n-1)
return rgb2hex(int(y2r),int(y2g),int(y2b))
elif n1 == 2 * n / 3:
return '#0000FF' #青
elif n1 < area3:
y3r = 255*(3*n1/n-2)
y3g = 0
y3b = 255*(-3*n1/n+3)
return rgb2hex(int(y3r),int(y3g),int(y3b))
elif gray: #白黒を使用する
if n == n1:
return '#FFFFFF' #白
elif n+1 == n1:
return '#F5F5F5' #whitesmoke
elif n+2 == n1:
return '#DCDCDC' #gainsboro
elif n+3 == n1:
return '#D3D3D3' #lightgray
elif n+4 == n1:
return '#C0C0C0' #silver
elif n+5 == n1:
return '#A9A9A9' #darkgray
elif n+6 == n1:
return '#808080' #gray
elif n+7 == n1:
return '#696969' #dimgray
elif n+8 == n1:
return '#000000' #black
else:
return 'Error' #エラー
#----
if __name__ == '__main__':
#print(make_color_code(6,1,gray = False))
for i in range(12):
print(make_color_code(12,i,gray = False)) #色の数=12
$ ./color変化4.py
#FF0000
#BF3F00
#7F7F00
#3FBF00
#00FF00
#00BF3F
#007F7F
#003FBF
#0000FF
#3F00BF
#7F007F
#BF003F
RGB 배열을 HTML 등으로 변환하는 데 사용되는 16진수 표현의 함수는 다음과 같습니다.
색상 코드 변환
http://code.tiblab.net/python/color_code_transform
라는 코드를 그대로 사용했다.
그레이스케일의 컬러 인코딩으로 인터넷에서 찾은 물건을 직접 사용했다.URL 등이 제어를 잊어버려서 몰라요.
사용법
make_color_code (색상 수량 (int), 색상 번호 (int),gray=False)
예제
make_color_code(12,i,gray = False)
・색상의 수량은 3의 배수여야 합니다.(너무 크면 옆의 색깔과 무슨 차이가 있는지 모르겠다.)
색깔 번호는 0. - 빨간색.
12(예)까지 가능하지만 12는 빨간색이므로 사용하지 않습니다.
그레이스케일을 사용할 때 12 (예) 는 흰색으로 사용합니다.
・gray=False는 회색조를 사용하지 않습니다.
gray=True는 회색조(9가지 색상)를 사용합니다.
Reference
이 문제에 관하여(파이톤으로 색조를 계산하는 색 코드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ty21ky/items/05298d000be9a817d0cc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)