일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Excel
- matplotlib
- Google Excel
- Java
- Apache
- 파이썬
- GIT
- Mac
- PySpark
- hive
- PANDAS
- google apps script
- math
- django
- gas
- SQL
- Kotlin
- Redshift
- Python
- c#
- PostgreSQL
- string
- dataframe
- numpy
- list
- Tkinter
- array
- Github
- Google Spreadsheet
- Today
- Total
달나라 노트
Python Basic : RGBA, ARGB 변환 본문
RGBA는 Red, Green, Blue, Alpha 총 4개의 요소를 조합하여 색상을 나타내는 방식입니다.
R (Red) -> 빨간색 성분을 나타냄. (0 ~ 255 사이의 숫자를 사용하며 숫자가 커질수록 빨간색 성분이 강해짐.)
G (Green) -> 초록색 성분을 나타냄. (0 ~ 255 사이의 숫자를 사용하며 숫자가 커질수록 초록색 성분이 강해짐.)
B (Blue) -> 파란색 성분을 나타냄. (0 ~ 255 사이의 숫자를 사용하며 숫자가 커질수록 파란색 성분이 강해짐.)
A (Alpha) -> 투명도를 나타냄. (0 ~ 1 사이의 실수를 사용하며 0은 완전한 투명, 1은 완전한 불투명을 의미합니다.)
ARGB는 RGBA를 Hex code로 나타낸 것입니다.
RGBA에 있는 R, G, B, A 각각의 성분값을 16진수로 변경하여 나열한 것입니다.
RGBA = (0, 0, 0, 0)
ARGB = #00000000
RGBA와 ARGB는 각각 위처럼 나타내어집니다.
RGBA는 보통 위처럼 R, G, B, A 성분에 대한 수치를 나열합니다.
ARGB는 RGBA에 있는 각 요소를 16진수로 바꿔서 나열하는데
ARGB는 가장 앞에 #이 붙고 총 8자리의 숫자 또는 문자가 옵니다.
# 뒤의 숫자는 각각 아래와 같은 의미를 가집니다.
가장 처음 두 자리 숫자 = A(Alpha, 투명도)
그 다음 두 자리 숫자 = R(Red, 빨강)
그 다음 두 자리 숫자 = G(Green, 초록)
마지막 두 자리 숫자 = B(Blue, 파랑)
한 가지 주의할 것은 투명도입니다.
RGBA = (0, 0, 0, 0~1)
RGBA에서 마지막 요소인 투명도 A(Alpha)는 0~1 사이의 실수값을 가집니다.
근데 이것을 ARGB Hex code로 변환하면 0~1을 0~255 사이의 숫자로 변환해야 합니다.
즉, RGBA의 A값에서 255를 곱한 후 이것을 정수로 round하여 16진법의 수로 바꾸는 방법이 있죠.
RGBA <-> ARGB 값 간의 변환을 코드로 구현하면 다음과 같습니다.
R = 166
G = 128
B = 255
A = 0.8
# convert RGBA value to ARGB Hexadecimal code
R_hex = hex(R).replace('0x', '')
G_hex = hex(G).replace('0x', '')
B_hex = hex(B).replace('0x', '')
A_hex = hex(int(round(A * 255, 0))).replace('0x', '') # 0~1의 A값을 0~255 사이의 정수로 환산.
print(R_hex)
print(G_hex)
print(B_hex)
print(A_hex)
argb_hex_color_code = '#{a_hex}{r_hex}{g_hex}{b_hex}'.format(
a_hex=str(A_hex).ljust(2, '0'), # A_hex 값이 한 자리 수인 경우를 대비해 ljust 사용하여 왼쪽에 0 붙임.
r_hex=str(R_hex).ljust(2, '0'), # R_hex 값이 한 자리 수인 경우를 대비해 ljust 사용하여 왼쪽에 0 붙임.
g_hex=str(G_hex).ljust(2, '0'), # G_hex 값이 한 자리 수인 경우를 대비해 ljust 사용하여 왼쪽에 0 붙임.
b_hex=str(B_hex).ljust(2, '0') # B_hex 값이 한 자리 수인 경우를 대비해 ljust 사용하여 왼쪽에 0 붙임.
)
print(argb_hex_color_code)
-- Result
#cca680ff
- 참고
위 사이트는 RGBA color의 color code 변환을 도와주는 Tool입니다.
'Python > Python Basic' 카테고리의 다른 글
Python int : 숫자 형태로 만들기, 16진수를 10진수로 변환, 8진수를 10진수로 변환, 2진수를 10진수로 변환 (10진수로 변환하기) (0) | 2024.03.29 |
---|---|
Python Basic : Terminal 글자 색상, 배경 색상 입히기 (0) | 2024.03.21 |
Python Basic : RGB, RGB Hex color 변환 (0) | 2024.03.07 |
Python Basic : hex() (10진수를 16진수로 변환. 10진수 16진수 변환. hexadecimal number) (0) | 2024.03.07 |
Python Basic : oct() (10진수를 8진수로 변환. 10진수 8진수 변환. Octal number) (2) | 2024.03.07 |