PROG.
화면 그리기 프로그램을 만들어보자.
NUL
2007. 5. 8. 20:41
설명이 귀찮으니 일단 어떤 걸 만들려 하는지 보자.
델파이 7 pro, Graphics32를 사용하였다. 원래 이런 글은 TBitmap의 Scaline으로 포인터 써가며 픽셀 연산하는 모습을 보여주어야 뽀다구가 나지만……. 상당히 귀찮은 작업이므로. 그냥 라이브러리를 사용했다. 당연히 소스를 컴파일해보려면 이 라이브러리를 깔아야 한다.
제작 시퀀스
너무 성의가 없어 보이니 -_-; 좀 더 자세히 비비고 들어가 보자
나머지 필요한 것은 사용자의 편의를 위한 부가기능일 것이다. (사실은 이게 더 고되고 험난한 일이다. )
혹시라도 이걸 사용할 곳이 있다면 출처를 밝히고 마음껏 쓰시라.
왼쪽 마우스버튼은 빨강색 펜 오른쪽 버튼은 파란색 펜으로 그린다
델파이 7 pro, Graphics32를 사용하였다. 원래 이런 글은 TBitmap의 Scaline으로 포인터 써가며 픽셀 연산하는 모습을 보여주어야 뽀다구가 나지만……. 상당히 귀찮은 작업이므로. 그냥 라이브러리를 사용했다. 당연히 소스를 컴파일해보려면 이 라이브러리를 깔아야 한다.
제작 시퀀스
- 화면 전체를 캡쳐한다.
- 캡쳐한 이미지를 뿌린 윈도우을 최상단에 위치시킨다. 캡쳐한 이미지로 뒤덮인 윈도우이므로 마치 실제 데스크톱 화면이 그대로 있는 것처럼 보인다. -_-;
- 선을 그리기 위해 브러쉬 비트맵을 생성한다. 그냥 gdi를 이용해도 되지만 이렇게 해야 추후에 다양한 효과를 넣을 수 있다.
- 캡쳐한 이미지 위에 레이어를 올려놓자. (레이어라는 개념은 포토샵에 나오는 것 같지만 사실상 프로그래머에게 더 중요하다. 그래픽 편집 툴의 거의 모든 효과들은 이미지들의 비트 연산으로 이루어지는데 이를 위해 이미지들을 레이어 별로 구분시켜 놓고 원하는 효과에 따라 알맞은 알고리즘을 적용하여 연산을 시키는 것이다. 그러니까 결국은 포토샵과 같군요....;
- 윈도우의 마우스 입력에 따라 아까 만든 레이어에 마음껏 그리자.
- 형광 펜 효과 같은 걸 주려고 알파 브랜딩을 넣어야 하지만 Graphics32 가 알아서 해주므로 코딩이 너무 쉽다. 레이어 관련 클래스들도 이미 다 들어가 있으니 더더욱 손 델 필요가 없다. 왠지 거저먹는 기분이다 -_-;
- ESC 를 누르면 종료가 되게 하자.
너무 성의가 없어 보이니 -_-; 좀 더 자세히 비비고 들어가 보자
-
화면 캡쳐
반투명 윈도우들을 캡쳐 하기 위해서 CAPTUREBLT 의 옵션을 준다. 델파이 7만을 사용하는 늘보는 이런 게 있는 줄도 몰랐다 ㅜㅜ (Daum 카페 다림방소프트웨어공작소 의 운영자가 일러 주셨다.) - 브러쉬를 만들고자 알파 채널 비트맵을 읽어서 색상을 입혔다. 여기선 알파 채널이 그냥 검은색 흰색뿐이지만 좀 더 보완해서 넣는다면 좀 더 부드러운 펜을 만들 수도 있다. 다만, 화면 그리기 용도는 이걸로 충분하니까 여기까지만 했다.
- 마우스 입력에 따라 브러쉬로 선을 그려야 한다. 선 그리기 알고리즘에 대해선 10년 전에 어렴풋이 공부한 것 같기도 한데……. 그걸 기억하기도 책을 찾기도 힘겨워서 Graphics 32 내부의 라인 그리는 루틴을 카피했다. 루 틴을 죽 보니 왠지 낯이 익은 것 같기도 하다 -_-; 요녀석들이다.
나머지 필요한 것은 사용자의 편의를 위한 부가기능일 것이다. (사실은 이게 더 고되고 험난한 일이다. )
혹시라도 이걸 사용할 곳이 있다면 출처를 밝히고 마음껏 쓰시라.
소스 및 데모 다운로드