81.4 실행 결과 확인하기

이제 지금까지 만든 소스 코드를 컴파일 한 뒤 비트맵 이미지를 아스키 아트로 변환해봅니다.

변환할 이미지는 GitHub 저장소의 Unit 80/Peppers80x80.bmp 파일을 사용하겠습니다. 실제로는 그림 81‑6과 같은 이미지이지만 가로 세로 해상도가 높으면 ASCII 문자가 너무 많이 생성되므로 한눈에 알아보기가 힘듭니다. 따라서 가로 세로 해상도를 80x80으로 줄인 이미지를 사용합니다.

그림 81‑6 Peppers

실행 파일을 실행하면 ascii.txt 파일이 생성되고, 파일을 메모장으로 열어보면 다음과 같은 모양을 볼 수 있습니다.

그림 81‑7 비트맵 이미지를 아스키 아트로 변환한 모습
읽을거리 | USC-SIPI 이미지 데이터베이스

이번 예제에서 사용된 이미지는 서던 캘리포니아 대학교 신호 및 이미지 처리 연구소(University of Southern California Signal and Image Processing Institute, USC-SIPI)에서 제공하는 이미지입니다.

USC-SIPI는 이미지 데이터베이스 웹 사이트를 운영하고 있으며, 컴퓨터 그래픽스 분야(이미지 처리 알고리즘)에서 사용하는 다양한 기본 예제(샘플)을 얻을 수 있습니다.

지금까지 비트맵 파일을 아스키 아트로 변환하는 방법을 배웠는데 아무래도 초보자들에게는 비트맵 구조가 생소하고 이미지 처리 방법이 복잡했을 겁니다. 특히 4바이트 정렬이나 픽셀 데이터가 뒤집혀서 저장되는 것은 비트맵 스펙에 나오는 이론적인 내용이라 조금 어려운 부분입니다.

사실 이제 C 언어를 배운 사람이 이 정도의 프로그램을 처음부터 끝까지 만드는 것은 쉽지가 않습니다. 하지만 조금만 C 언어에 익숙해지면 불가능한 일도 아닙니다. 프로그래밍은 반복 학습이 중요하므로 자주 이 책을 보고 프로그램을 만들어보는 것이 좋습니다.