DirectShow 보유 DIB 의 조작 16 비트 RGB 의 조작   [목차열람] [주소복사] [슬롯비우기]
16 비트 RGB 의 조작
 
Microsoft DirectX 9.0

16 비트 RGB 의 조작

16 비트비압축 RGB 에서는 2 개의 포맷이 정의되고 있다.

RGB 565

RGB 565 이미지로부터 색성분을 추출하려면 , 각 픽셀을 WORD 형으로서 처리해, 다음의 비트 마스크를 사용한다.

WORD red_mask = 0xF800;
WORD green_mask = 0x7E0;
WORD blue_mask = 0x1F;

다음과 같이 픽셀로부터 색성분을 얻어온다.

BYTE red_value = (pixel & red_mask) >> 11;
BYTE green_value = (pixel & green_mask) >> 5;
BYTE blue_value = (pixel & blue_mask);

이 처리를 반대로 해 RGB 565 픽셀을 생성 한다.

WORD pixel565 = (red << 11) | (green << 5) | blue;

이 코드에서는, 색값이 이미 적절한 비트수에 절약할 수 있고 있으면 가정하고 있다. 적, 초록, 파랑의 값은 단일의 WORD 값에 팩 된다.

RGB 555

RGB 555 의 조작은 기본적으로 RGB 565 와 같다. 다만, 비트 마스크와 비트 쉬프트 연산이 다르다. RGB 555 픽셀로부터 색성분을 얻어오려면, 다음과 같이 한다.

WORD red_mask = 0x7C00;
WORD green_mask = 0x3E0;
WORD blue_mask = 0x1F;

BYTE red_value = (pixel & red_mask) >> 10;
BYTE green_value = (pixel & green_mask) >> 5;
BYTE blue_value = (pixel & blue_mask);

적, 초록, 파랑의 색값을 RGB 555 픽셀에 팩 하려면 , 다음과 같이 한다.

WORD pixel565 = (red << 10) | (green << 5) | blue;

참조

↑TOP