[Bitmap Project] Bitmap Project

 

파이썬을 공부해보려고 구글링을 하던 중 코딩 도장을 발견하였다. 그동안 봐 왔던 프로그래밍 언어 기초 온라인 강의 컨텐츠들은 체계화 되어있지 않고 엉성하거나, 유료였는데 코딩도장은 (판매중인 책을 기반으로 한 듯하지만) 무료로, 잘 짜여진 구성의 글을 제공하고 있었다.

다_아는_사람들이구먼

???: 다 아는 것들이네

그래도 C를 좀 오래 만져왔기 때문에 여러가지를 이미 해봤고 많이 아는 것들이었는데, 한번도 시도해보지 않았던 특이한 주제를 발견했다.

C언어 코딩 도장: 81.0 실전 예제: 비트맵 파일을 아스키 아트로 변환하기

오래전에 파일 입출력을 공부해봤었고, 만들던 연습프로그램에서 데이터 저장용으로 바이너리 파일을 읽고 써보기도 했었다. 하지만 상용되는 바이너리 파일들의 각각의 파일 형식을 이해하고 읽고 쓰는것이 막연히 복잡할 것이라 생각하고 시도조차 해보지 않았었다. 갑자기 코딩 도장의 글을 보니 할 수 있을 것 같다는 생각이 들어 비트맵 파일을 가지고 장난을 쳐봐야겠다고 결심했다.

코딩 도장에 있는 예제를 따라하는 것에서 끝나는 것이 아니라, 색상반전, 필터 등 영상처리도 해볼까 한다.

영상처리의 어머니 Lena 여사님의 이미지가 열일 할 예정이다. Lenna.png

******::**======++++++++++++++++++++++++++++++++++++**********::--++++++++++++==
********++======++++++++++++++++++++++++++++++++++++************--::++++++++==@@
********++======++++++++++++++++++++++++++++++++++++**************--**++++==@@@@
********++======++++++++++++++++++****++++++++++++++++************::::++%%@@@@@@
********++======++++++++++++++****::::::::++++++++++++**************--++@@@@@@@@
**++****++========++++++++++++++****::::--::**++====******************%%@@@@@@@@
++==****++========++++++++++++++****::::------**====****++++******++%%@@@@@@%%++
====++**++========++++++++++++******::----------++==****==%%++****==@@@@@@%%++**
====++**++========++++==++++++++****::------------++++**==@@++**++@@@@@@@@==****
====++**++========++++==++++++++**::::------------::****++==::--**@@@@@@%%******
====++**++========++++==++++++**::::::::::----------::****::----**@@@@@@++******
====**::++========**++==++++******::::::::::::::::::::::--------++@@@@==********
====**::++========****++++++********::::::::::::::::--------::::%%@@%%++********
====**::**========****++++++++****++++++**++**::::--------::**++@@@@==**********
====**::**========****++++++++++++========%%++::------::**++++%%@@%%++**********
====**::**========++::++++++++====%%%%====++::::::::++++**++%%@@@@==************
====**::**========++::++++++==%%%%%%@@%%++::::::::--++==++%%@@@@%%++************
====++::**========++**++++==%%@@%%%%%%++**::::::----**%%++@@@@@@%%**************
====++::**========++++++==%%%%@@%%%%++::::::::::----::%%==%%@@@@==**************
====++::**========++====%%%%%%@@%%==**::**++++::--::**%%==%%@@%%++**************
====++::**======++**==%%==%%@@@@%%**::==%%====**::++%%@@%%%%@@%%****************
====++::**======++==%%%%==%%@@@@++****++++******::++==@@%%==@@==**************::
==%%++::**==++++====%%%%==%%@@%%**++++**::::****--**++%%%%==%%++************::::
%%%%++::**==++++====%%@@%%==%%++++==++**::::**++--**++%%%%==%%************::----
%%%%++::**==++======%%@@==%%==++@@==++******++++::**==%%%%====**********::------
%%%%++::**============%%%%==++%%@@==++********++::**%%%%%%++++**********::------
%%%%++::**======%%========++==@@%%==++********::::++%%%%%%==************--------
%%%%++::**====%%%%====++**==%%@@%%==++++++++++**++==@@%%%%==**********::--------
@@%%++::**====%%%%++++++**%%@@@@%%%%==++********++%%@@%%%%++********++::--------
@@%%++::**====%%%%++++++==@@@@@@@@%%%%==++******==@@@@%%%%++********++::------::
@@%%++::**==%%%%%%==++++==%%@@@@@@@@%%==++****::**==@@%%%%++++++++++++::--::++%%
++%%++::**==%%%%%%====++++%%@@@@@@@@%%++++****::--::++%%%%++**++++==++::::++%%%%
++++++::**==@@@@%%%%%%==++==%%@@@@%%%%++******::::----++%%++****++++**--**======
%%++++::**==@@%%%%@@%%==++==%%@@@@%%==++********::------%%++****++**::--++======
%%++++::**%%@@%%%%@@%%==++==%%%%%%====++********::::--..++++****++**--::========
%%++++::**==@@@@%%@@%%%%====%%@@%%====++********::::----::++++**++**--**========
%%++++****==@@@@@@@@%%==%%%%@@@@====++************::------======++**::========%%
==**++****%%@@@@%%@@@@====@@@@%%====++************::::----++==%%%%::++%%%%====%%
%%****::**%%@@@@%%%%%%%%==@@@@%%==++++++************::----**======++==%%%%====%%
%%****::**%%@@%%%%%%%%%%%%%%%%==++++++++************::::--::====++++========%%%%

이외에도 아래와 같은 소스들을 예시로 사용하고자 한다. 남가주대학교 신호 및 영상처리 연구소 자료실에서 가져온 자료들이며, 여기에 비트맵으로 변환해놓았다.

mandrill parrots pepper sailboat

GitHub repository: BitmapProject

This work is licensed under Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.
(The excerpted works are exceptionally subject to a licence from its source.) Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)