본문 바로가기
컴퓨터/프로그래밍

Visual C++ 그레이 스케일 이미지 그리기

by Begi 2018. 3. 23.
반응형

Visual Studio C++에서 SetDIBitsToDevice 또는 StretchDIBits을 사용하여 이미지를 표시할 때 기본적으로 RGB를 사용한 24비트 컬러로 표시되고 이미지 데이터도 24비트 컬러 정보를 가지고 있어야 한다. 


8비트 컬러 정보를 가지고 있는 그레이 스케일 (Grayscale) 이미지를 표시하기 위해서는 파레트를 사용하여야 한다.


다음과 같이 BITMAPINFO에서 256개의 파레트 정보를 설정하고 SetDIBitsToDevice 또는 StretchDIBits에서 bitInfo를 사용하면 그레이 스케일 이미지가 표시된다.

 BITMAPINFO* bitInfo = (BITMAPINFO*)malloc(sizeof(BITMAPINFO) + 256 * sizeof(RGBQUAD));

 for (int i = 0; i<256; i++)

 {

      bitInfo >bmiColors[i].rgbRed = i;

      bitInfo >bmiColors[i].rgbGreen = i;

      bitInfo >bmiColors[i].rgbBlue = i;

      bitInfo->bmiColors[i].rgbReserved = 0;

 } 


반응형

'컴퓨터 > 프로그래밍' 카테고리의 다른 글

델파이 (Delphi)  (0) 2018.03.29
Hello World 프로그램  (0) 2018.03.28
Visual Studio 버전  (0) 2018.03.23
OpenCV 3.4.1을 Visual Studio 2017 32비트 빌드 하는 방법  (0) 2018.03.22
OpenCV  (0) 2018.03.22

댓글