ColorToARGB

색상 유형을 uint 유형으로 변환하여 ARGB 표현되는 기능. ARGB 색상 서식은 그래픽 리소스, 텍스트 디스플레이 및 CCanvas 표준 라이브러리 클래스를 생성하는데 사용됩니다.

uint  ColorToARGB(
   color  clr,          // 색상 서식의 변환된 색상
   uchar  alpha=255     // 알파 채널 색상 투명도 관리
   );

매개변수

clr

[in]  색상 유형 변수의 색상 값.

알파

[in] ARGB 서식의 색상을 수신하는 데 사용되는 알파 채널의 값입니다. 값은 0(전경 픽셀의 색상은 기본 픽셀의 표시를 변경하지 않음)부터 255(기본 픽셀의 색상은 전면 픽셀의 색상으로 완전히 대체됨)까지 설정할 수 있습니다. 백분율 텀의 색상 투명도는 (1-알파/255)*100%로 게산됩니다. 즉 알파 채널의 값이 작을수록 더 투명한 색이 됩니다.

값 반환

Alfa, Red, Green, Blue (알파 채널, red, green, blue) 값이 4 uint 유형 바이트로 직렬로 설정된 경우 ARGB 형식으로 색상을 표시합니다.

주의

RGB는 컴퓨터 그래픽에서 픽셀 색 설명에 일반적으로 사용되는 기본 형식입니다. 기본 색상의 이름은 Red, Green 및 Blue 구성 요소를 설정하는 데 사용됩니다. 각 구성 요소는 색상 포화도를 0 ~ 255(16진법 형식의 0x00 ~ 0XFF) 범위에서 지정하는 1바이트로 설명됩니다. 흰색은 모든 색상을 포함하므로 0xFFFFFF라고 하며, 즉, 세 구성 요소 각각이 최대값 0xFF로 표시됩니다.

그러나 일부 태스크는 이미지가 어느 정도 투명도를 가진 색상으로 가려지는 경우 이미지의 모양을 설명하는 색상 투명도를 지정해야 합니다. 이러한 경우에 알파 채널 개념을 도입합니다. RGB 형식의 추가 구성 요소로 구현됩니다. ARGB 포맷 구조는 다음과 같습니다.

ARGB

ARGB 값은 일반적으로 각각 Alpha, Red, Green 및 Blue 채널의 값을 나타내는 각 숫자 쌍과 함께 16진법 형식을 사용하여 표현됩니다. 예를 들어, 80FFFF00 색상은 50.2% 불투명 노란색을 나타냅니다. 0x80은 0xFF 값의 50.2%이므로 처음에는 50.2%의 알파 값을 설정합니다. 그런 다음 첫 번째 FF 쌍은 빨간색 구성 요성의 가장 높은 값을 정의하고, 다음 FF 쌍은 이전과 동일하지만 녹색 구성 요소, 마지막 00 쌍은 파란색 구성 요소의 가장 낮은 값(파란색 없음)을 나타냅니다. 녹색과 빨간색의 조합은 노란색을 낳습니다. 알파 채널을 사용하지 않으면 입력을 6 RRGGBB 자리까지 줄일 수 있습니다. 그렇기 때문에 알파 채널 값이 uint 정수 유형의 상위 비트에 저장됩니다.

컨텍스트에 따라 16진법 자리수는 '0x' 또는 '#' 접두사, 예를 들어, 80FFFF00, 0x80FFFF00 또는 #80FFFF00로 쓸 수 있습니다.

 

예를 들어:

//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                         |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 투명도 설정
   uchar alpha=0x55;  // 0x55는 55/255=21.6 % 투명도를 의미합니다   
   //--- clrBlue 색상 ARGB로 변환
   PrintFormat("0x%.8X - clrBlue",clrBlue);
   PrintFormat("0x%.8X - clrBlue ARGB with alpha=0x55 (transparency 21.6%%)",ColorToARGB(clrBlue,alpha));
   //--- clrGreen 색상 ARGB로 변환
   PrintFormat("0x%.8X - clrGreen",clrGreen);
   PrintFormat("0x%.8X - clrGreen ARGB with alpha=0x55 (transparency 21.6%%)",ColorToARGB(clrGreen,alpha));
   //--- clrRed 색상 ARGB로 변환
   PrintFormat("0x%.8X - clrRed",clrRed);
   PrintFormat("0x%.8X - clrRed ARGB with alpha=0x55 (transparency 21.6%%)",ColorToARGB(clrRed,alpha));
  }

추가 참조

Resources, ResourceCreate(), TextOut(), color type, char, short, int and long types