C 언어 콘솔 색깔 출력 (RGB 적용)

개요

키보드에 손을 올리고 문득 든 생각이 CUI 환경에서 역동적인 효과 애니메이션을 연출할 수 있으면 좋겠다고 생각했습니다.

아마 그 전에 봤었던 인디게임 소개 영상을 본 영향인 것 같습니다.

그러다가 색깔을 좀 더 다채롭게 할 수 없을까 찾아보다 생각외로 되게 별거 아니었던 것이었습니다.

이럴 수가. 리눅스랑 비슷하더군요.


사용 방법

사용 방법은 헤더파일만 추가해 주면 됩니다.

해더파일의 내용도 별거 없습니다.

다음 세 가지의 함수를 집중적으로 보면 됩니다.

FG_COLOR(r, g, b) , BG_COLOR(r, g, b) , SET_COLOR(type, r, g, b)

FG_COLOR(r, g, b)BG_COLOR(r, g, b)

두 함수는 rgb 값에 오로지 0~255의 숫자만 들어갈 수 있습니다.

변수는 받지 않습니다.

그리고 문자열로 반환됩니다.

즉, 다음과 같이 사용할 수 있습니다.

1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include "cful.h"

int main(void)
{
printf(FG_COLOR(133, 203, 255) "Hello World!\n" RESET);
printf(BG_COLOR(69, 46, 107) "Hello World!\n" RESET);
return 0;
}

결과

SET_COLOR(type, r, g, b) 함수는 SetConsoleTextAttribute 함수처럼 콘솔의 색을 설정합니다.

자매품으로 SET_FG_COLOR(r, g, b) , SET_BG_COLOR(r, g, b)

있으며 이 세 함수는 변수 사용이 가능합니다.

다음과 같이 사용합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include "cful.h"

int main(void)
{
int r = 133, g = 203, b = 255;
SET_COLOR(FOREGROUND, r, g, b);
printf("Hello World!\n" RESET);

r = 69, g = 46, b = 107;
SET_COLOR(BACKGROUND, r, g, b);
printf("Hello World!\n" RESET);

r = 214, g = 51, b = 146;
SET_FG_COLOR(r, g, b);
printf("Hello World!\n" RESET);

r = 140, g = 99, b = 34;
SET_FG_COLOR(r, g, b);
printf("Hello World!\n" RESET);
return 0;
}

결과


Github

아래 링크에서 해더파일만 프로젝트에 추가하면 됩니다.

https://github.com/raravel/cful

읽어주셔서 감사합니다.

작성자: raravel
주소: https://raravel.dev/20200119-0048/
저작권 고지: 이 블로그의 모든 기사는 별도로 명시하지 않는 한 CC BY-NC-SA 4.0 에 따라 라이선스가 부여됩니다.