- CharToString
- CharArrayToString
- CharArrayToStruct
- StructToCharArray
- ColorToARGB
- ColorToPRGB
- ColorToString
- DoubleToString
- EnumToString
- IntegerToString
- ShortToString
- ShortArrayToString
- TimeToString
- NormalizeDouble
- StringToCharArray
- StringToColor
- StringToDouble
- StringToInteger
- StringToShortArray
- StringToTime
- StringFormat
ColorToPRGB
유형 color를 uint 유형으로 변환하여 색상의 미리 곱해진 ARGB 표현(PRGB)을 얻습니다. PRGB 색상 형식은 그래픽 리소스, 텍스트 출력을 생성할 때와 CCanvas 스탠다드 라이브러리 클래스와 다음의 색상 형식과 함께 사용됩니다 COLOR_FORMAT_ARGB_RAW (구성 요소 단말기에서 처리되지 않으며 사용자가 올바르게 준비해야 합니다.
uint ColorToPRGB(
|
매개 변수
clr
[in] 색상 유형 변수로 색상 값.
alpha
[in] 색상을 포맷으로 가져오기 위한 알파 채널 값 ARGB. 이 값은 0(겹쳐진 픽셀의 색상이 기본 픽셀의 표시를 전혀 변경하지 않음)부터 255(색상이 완전히 겹쳐져 기본 픽셀의 색상과 겹침)까지 설정됩니다. 색상 투명도(%)는 (1-알파/255)*100%로 계산됩니다. 즉, 알파 채널 값이 낮을수록 색상이 더 투명해집니다.
반환 값
ARGB 형식의 색상 표현. 여기서 4바이트의 단위 유형에는 Alfa, Red, Green, Blue(알파 채널, 빨간색, 녹색, 파란색) 값이 포함됩니다.
참조
PRGB는 어떠한 점이 ARGB과 틀릴까요?
알파 채널이 있는 RGBA 색상에는 두 가지 일반적인 표현이 있습니다:
- 직선(일반) ARGB - RGB는 "있는 그대로" 저장되며 알파는 별개입니다;
- 미리 곱셈(PRGB) - RGB에 이미 알파가 곱해졌습니다.
ModeCOLOR_FORMAT_ARGB_RAW는 색상 구성요소가 이미 올바르게 준비되었고 터미널이 이를 "정규화/재계산"하지 않는다고 가정합니다. 따라서 미리 곱해진 색상이 예상되는 시나리오에서는 전달되어야 하는 것이 PRGB입니다. 그렇지 않으면 렌더링 중에 시각적 아티팩트/불일치가 발생할 수 있습니다.
PRGB 컬러는 공식으로 계산됩니다:
R = R * A / 255
G = G * A / 255
B = B * A / 255
A = A
특수한 케이스:
- alpha = 255이면 결과는 ColorToARGB(clr,255)와 일치합니다(곱셈은 RGB를 변경하지 않음);
- alpha = 0이면 결과는 0x00000000(완전 투명 픽셀, RGB = 0)이 됩니다.
예:
//+------------------------------------------------------------------+
|
참조
Resources, ColorToARGB, ResourceCreate(), TextOut(), Color type, Types char, short, int and long