81.4 실행 결과 확인하기

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

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

그림 81‑6 레나 소더버그

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

그림 81‑7 비트맵 이미지를 아스키 아트로 변환한 모습
읽을거리 | 레나 소더버그

이번 예제에서 사용된 이미지는 1972년 11월자 플레이보이 잡지에 실린 레나 소더버그의 사진입니다. 현재 레나의 사진은 컴퓨터 그래픽스 분야(이미지 처리 알고리즘)에서 기본 예제(샘플)로 널리 사용되고 있는데요. 그 때 당시 대학원생들이 레나의 사진을 영상 처리에 자주 사용하면서 아이러니하게도 플레이보이 잡지로 유명해진 것이 아니라 전혀 관계가 없어 보이는 컴퓨터 분야에서 무척 유명해졌습니다.

간접적이긴 하지만 컴퓨터 그래픽 발전에 이바지한 공로로 1997년에 개최된 Imaging Science in Technology 50주년 기념 학회에 특별 게스트로 초대되기도 했습니다.

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

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