이전 항목

파일 접근하기

다음 항목

기타 함수

링크


원문 보러 가기
오역 신고하기
Created using Sphinx.

Color 클래스

렌파이에는 한 가지 색상 공간을 다른 색 공간으로 변환하거나 다양한 색상 이론 작업을 수행할 때 사용할 수 있는 Color 클래스가 있습니다. Color 객체는 변경할 수 없으며 색상 튜플을 사용할 수 있는 곳이라면 어디든 사용할 수 있습니다.

Color 튜플은 다음 세 가지 색상 공간에 작용할 수 있습니다.

  • RGB - 빨간색, 녹색, 파란색
  • HLS - 색, 밝기, 채도
  • HSV - 색, 채도, 명암

다음은 렌파이에서 수행할 수 있는 색상값을 계산한 예제이며, 모든 색상은 밝은 녹색을 나타냅니다.

# 일반 렌파이 색상.
Color("#0f0")
Color("#00ff00")
Color((0, 255, 0, 255))

# 다른 색 공간으로 변환한다.
Color(hls=(.333, 0.5, 1.0))
Color(hsv=(.333, 1.0, 1.0))

# 새로운 색상을 반환하는 메소드를 사용해 빨간색을 녹색으로 바꾼다.
Color("#f00").rotate_hue(.333)
class Color(color=None, hls=None, hsv=None, rgb=None, alpha=1.0)

Color 클래스는 색상을 나타내거나 조정하거나 다양한 색 공간으로 변환하기 위해 사용된다. 또한 알파값으로 투명도를 나타낼 수도 있다.

Color 를 생성할 때에는 color, hls, hsv, rgb 인수 가운데 하나를 지정해야 한다. (모두 None이라면 None이 반환된다.)

color

색상. 렌파이가 해석 가능한 표준 형식 가운데 하나. 다음과 같은 형식이어야 한다.:

  • Color 객체.
  • 하나의 (r, g, b) 또는 (r, g, b, a) 튜플. 각 숫자는 0 이상 255 이하 이어야 한다.
  • 16진법으로 색상이 표현된 문자열. "#rgb", "#rgba", "#rrggbb", 또는 "#rrggbbaa".
hls
색-밝기-채도 색 공간으로 표현된 색상. 이 값은 3가지 요소로 이루어진 튜플이어야 하며, 각 요소는 0.0 이상 1.0 이하이어야 한다.
hsv
색-채도-명암 색 공간으로 표현된 색상. 이 값은 3가지 요소로 이루어진 튜플이어야 하며, 각 요소는 0.0 이상 1.0 이하이어야 한다.
rgb
빨간색-녹색-파란색 색 공간으로 표현된 색상. 이 값은 3가지 요소로 이루어진 튜플이어야 하며, 각 요소는 0.0 이상 1.0 이하이어야 한다.

지정한 색상에 알파값이 없다면 alpha 를 사용한다. alpha 는 반드시 0.0 이상 1.0 이하이어야 한다.

Color 객체는 (빨간색, 녹색, 파란색, 알파)로 이루어진 4요소 튜플로 사용될 수 있다. 튜플로 사용될 때에는 각 요소의 값이 0 이상 255 이하이어야 한다.

Color 객체는 각 요소를 덧셈 뺄셈 곱셈을 행하는 +, -, * 연산자를 지원한다. 이 가운데 일부 연산자를 사용하면 지원하는 범위 바깥에 있는 색상을 생성하게 될 수도 있다. 이 때 색상은 렌파이의 다른 기능으로 전달되지 않아야 한다. (normalize 메소드로 색상 튜플의 각 요소를 적당한 범위 내의 값으로 제한하는 새로운 색상값을 반환할 수 있습니다.

Color 객체는 아래와 같은 속성이 있다.:

hls

색, 밝기, 채도를 부동 소수점 숫자로 나타낸 3요소 튜플을 색상으로 반환한다. 각 요소의 범위는 0.0 이상 1.0 이하이어야 한다.

hsv

색, 채도, 명암을 부동 소수점 숫자로 나타낸 3요소 튜플을 색상으로 반환한다. 각 요소의 범위는 0.0 이상 1.0 이하이어야 한다.

rgb

빨간색, 녹색, 파란색을 부동 소수점 숫자로 나타낸 3요소 튜플을 색상으로 반환한다. 각 요소의 범위는 0.0 이상 1.0 이하이어야 한다.

alpha

이 Color 객체의 알파 (투명도)를 0.0 이상, 1.0 이하의 값으로 반환한다. 0.0은 투명, 1.0은 불투명을 나타낸다.

Color 객체에는 다음과 같은 메소드가 있다. Color 객체는 변경할 수 없으므로 아래 메소드들은 항상 새 Color 객체를 반환한다.

interpolate(other, fraction)

Color 객체와 RGB 색 공간에 존재하는 other 를 보간해, 새로운 Color 객체를 반환한다. fraction 이 0.0 이라면 Color 와 같은 색상을 반환하며, 1.0 이면 other 와 같은 색상을 반환한다.

interpolate_hls(other, fraction)

Color 객체와 HLS 색 공간에 존재하는 other 를 보간해, 새로운 Color 객체를 반환한다. fraction 이 0.0 이라면 Color 와 같은 색상을 반환하며, 1.0 이면 other 와 같은 색상을 반환한다.

other 는 문자열, Color 객체 또는 HLS 튜플이어야 한다.

interpolate_hsv(other, fraction)

Color 객체와 HSV 색 공간에 존재하는 other 를 보간해, 새로운 Color 객체를 반환한다. fraction 이 0.0 이라면 Color 와 같은 색상을 반환하며, 1.0 이면 other 와 같은 색상을 반환한다.

other 는 문자열, Color 객체 또는 HSV 튜플이어야 한다.

multiply_hls_saturation(saturation)

Color 객체의 채도를 saturation 만큼 곱해 새로운 Color 객체를 반환한다. HLS 색 공간 시스템으로 계산한다.

multiply_hsv_saturation(saturation)

Color 객체의 채도를 saturation 만큼 곱해 새로운 Color 객체를 반환한다. HSV 색 공간 시스템으로 계산한다.

multiply_value(value)

Color 객체의 명암을 value 만큼 곱해 새로운 Color 객체를 반환한다. HSV 색 공간 시스템으로 계산한다.

normalize(self)

Color 객체를 정상화한 새 Color 객체를 반환한다. 모든 요소를 0 이상 255 이하의 값으로 맞춘다.

opacity(opacity)

Color 객체의 알파 채널을 opacity 만큼 곱해 새로운 Color 객체를 반환한다.

replace_hls_saturation(saturation)

Color 객체의 채도를 saturation 으로 교체해 새로운 Color 객체를 반환한다. HLS 색 공간 시스템으로 계산한다.

replace_hsv_saturation(saturation)

Color 객체의 채도를 saturation 으로 교체해 새로운 Color 객체를 반환한다. HSV 색 공간 시스템으로 계산한다.

replace_hue(hue)

Color 객체의 색을 0.0 이상 1.0 이하의 값인 hue 로 교체해 새로운 Color 객체를 반환한다.

replace_lightness(lightness)

Color 객체의 밝기를 lightness 로 교체해 새로운 Color 객체를 반환한다. HLS 색 공간 시스템으로 계산한다.

replace_value(value)

Color 객체의 명암을 value 로 교체해 새로운 Color 객체를 반환한다. HSV 색 공간 시스템으로 계산한다.

rotate_hue(rotation)

Color 객체의 색을 rotation 만큼 회전해 새로운 Color 객체를 반환한다. rotation 은 전체 각도의 비율을 가리키며, 회전하려는 각도를 360.0으로 나눈 값이다.

shade(fraction)

Color 객체에 검은색을 혼합해 그림자를 생성한다. fraction 은 검은색에 섞으려는 기존 색상의 비율이다. fraction 이 1.0 이면 색상을 변경하지 않으며, 0.0 이라면 검은색을 반환한다.

알파 채널은 변경하지 않는다.

tint(fraction)

Color 객체에 흰색을 혼합해 엷은 색을 생성한다. fraction 은 검은색에 섞으려는 기존 색상의 비율이다. fraction 이 1.0 이면 색상을 변경하지 않으며, 0.0 이라면 검은색을 반환한다.

알파 채널은 변경하지 않는다.