RGBA 컬러 모델

RGBA color model
체커보드 배경에 합성된 RGBA 이미지의 예알파는 상단에서 0%, 하단에서 100%이다.

RGBA적색 녹색의 푸른색 알파를 의미한다.때로는 컬러 스페이스로 묘사되기도 하지만, 실제로는 네 번째 알파 채널로 보완된 3채널 RGB 컬러 모델이다.알파는 각 픽셀이 얼마나 불투명한지 나타내며, 불투명한 영역의 가장자리의 투명 영역과 안티앨리어싱으로 알파 컴포지팅을 사용하여 다른 픽셀보다 영상이 결합될 수 있도록 한다.

이 용어는 사용 중인 RGB 색상 공간을 정의하지 않는다.또한 색상이 알파 값에 의해 프리뮬레이션되는지 여부도 명시하지 않으며, 프리뮬레이션이 어떤 색 공간에서 이루어졌는지 명시하지 않는다.이는 이미지 처리 방법을 결정하는 데 단순히 "RGBA" 이상의 정보가 필요하다는 것을 의미한다.

어떤 맥락에서 약어 "RGBA"는 특정 메모리 레이아웃(아래 RGBA888888)을 의미하며, 대안에 사용되는 "BGRA"와 같은 다른 용어와 함께 사용된다.다른 맥락에서 "RGBA"는 어떤 레이아웃을 의미한다.

표현

컴퓨터 그래픽에서 RGBA 색 공간 정보를 인코딩하는 픽셀은 컴퓨터 메모리(또는 디스크의 파일)에 저장되어야 한다.대부분의 경우, 채널마다 1개씩 동일한 크기의 인접 메모리 조각이 4개씩 사용되며, 채널의 0은 검은색 또는 투명한 알파, all-1비트는 흰색 또는 완전히 불투명한 알파 등을 나타낸다.지금까지 가장 일반적인 형식은 각 채널에 대해 8비트(1바이트)를 저장하는 것이며, 이는 각 픽셀에 대해 32비트다.

메모리에 있는 이 4바이트의 순서는 다를 수 있으며, 이는 이미지 데이터를 교환할 때 혼란을 초래할 수 있다.이러한 인코딩은 종종 어떤 순서로든 네 글자로 표시된다(예: RGBA, ARGB 등).이 4글자의 연상키에 대한 해석은 잘 확립되어 있지 않다."RGBA"와 같은 니모닉을 이해하는 두 가지 일반적인 방법이 있다.

  • 바이트 순서 체계에서, "RGBA"는 바이트 R을 의미하고, 바이트 G를 의미하고, 바이트 B를 의미하며, 바이트 A를 의미한다.이 체계는 둘 다 바이트 지향적인 파일 형식이나 네트워크 프로토콜을 기술하는 데 일반적으로 사용된다.
  • 워드 오더 방식에서 "RGBA"는 완전한 32비트 단어를 나타내는 것으로 이해되는데, 여기서 R은 G보다 더 중요하고, B보다 더 중요하며, A보다 더 중요하다.

엔디안 시스템에서는 두 가지 계획이 동등하다.두 개의 니모닉이 서로 역행하는 리틀엔디안 시스템에서는 그렇지 않다.따라서 명확하기 위해서는 인코딩을 언급할 때 어떤 순서를 사용하는지 명시하는 것이 중요하다.이 글에서는 어느 정도 인기가 있는 체계를 사용할 것인데, 접미사 「8888」을 추가하여 4개의 8비트 단위를, 하나의 32비트 단위가 논의되고 있는 경우 「32비트 단위가 논의되고 있다.

RGBA 표현 변환기
리틀엔디안 빅엔디안
RGBA88888 ABGR32 RGBA32
ARGB32 BGRA88888 ARGB8888
RGBA32 ABGR8888 RGBA88888

RGBA88888

OpenGL과 PNG(Portable Network Graphics)에서는 RGBA 바이트 순서가 사용되는데, R이 가장 낮은 주소, 그 다음 G, 그 다음 B, 그리고 마지막으로 A가 메모리에 저장된다.작은 엔디안 아키텍처에서 이것은 ABGR32와 동등하다.[1]

채널당 8비트가 넘는 시스템(예: 16비트 또는 부동소수점)에서는 8비트 채널을 다른 순서로 저장하더라도 RGBA 순서에 따라 채널이 저장된다.

ARGB32

채널은 단일 32비트 부호화되지 않은 정수가 가장 높은 8비트의 알파 샘플을 가질 수 있도록 메모리에 배열되고, 그 다음이 빨간색 샘플, 녹색 샘플, 마지막으로 파란색 샘플이 가장 낮은 8비트의 샘플로 배열된다.

Sample layout in a typical 32bpp pixel

ARGB 값은 일반적으로 8개의 16진수를 사용하여 표시되며, 각 16진수 자릿수는 각각 알파, 빨간색, 녹색 및 파란색 채널의 값을 나타낸다.예를 들어,80FFFF00불투명(비-프리미엄) 황색 50.2%를 나타낸다.80128은 최대값 255(FF 16진수)의 약 50.2%이기 때문에 128은 50.2%의 알파값을 나타내며, 이를 계속 해독하려면80FFFF00첫 번째 가치FF빨강이 가질 수 있는 최대값을 나타내며, 두 번째 값을 나타낸다.FF이전과 같으나 녹색; 결승전00파란색이 가질 수 있는 최소값을 나타낸다(파란색 없음).따라서 빨간색 + 녹색은 노란색을 산출한다.알파값을 사용하지 않는 경우 이를 6자리까지 단축할 수 있다.RRGGBB이것이 알파를 상위 비트에 넣도록 선택된 이유다.컨텍스트에 따라 a0x또는 숫자 기호(#)[2]를 16진수 앞에 놓는다.

이 레이아웃은 24비트 컬러(32비트 RGBA)가 개인용 컴퓨터에 도입되면서 인기를 끌었다.당시에는 프로그램이 4개의 8비트 장치보다 1개의 32비트 장치를 조작하는 것이 훨씬 빠르고 쉬웠다.

little-endian 시스템에서 이것은 BGRA 바이트 순서와 동일하다.빅엔디안 시스템에서 이것은 ARGB 바이트 순서와 동일하다.

RGBA32

실리콘그래픽스 등 빅엔디안 머신에서 발원한 일부 소프트웨어에서는 색상이 ARGB32와 비슷한 32비트에 저장됐지만 알파는 상단보다는 하단 8비트에 저장됐다.예를 들어,808000FF빨간색과 녹색:50.2%, 파란색:0%, 알파:100%가 갈색일 것이다.RGBA88888 데이터가 이 기계에서 단어로 읽혔을 때 얻을 수 있는 것이 바로 이것이다.Portable Arbitrary Map과 FLTK에서 사용되지만, 일반적으로 드물다.

RGBA pixel layout

바이트는 ABGR의 순서로 리틀엔디안 기계의 메모리에 저장된다.

참고 항목

참조

  1. ^ "Portable Network Graphics (PNG) Specification (Second Edition)". www.w3.org. Retrieved 25 November 2021.
  2. ^ Microsoft MSDN XAML 색상 구조 참조(XAML/WPF/Silverlight)#aarrggbb그리고sc# scA,scR,scG,scB

외부 링크