|
가장 쉬운 방법은 마우스로 그림을 그릴 때 로딩한 이미지 위에 바로 그리는게 아니라
따로 임시 이미지를 생성해 두고 그곳에 그려서 최종적으로 로딩한 이미지 위에 덮어서
출력하는 겁니다. 그래서 나중에 저장할 때 자신이 그린 이미지만 저장하면 되죠..
다른 방법은 마우스로 그림을 그릴 때 그리는 정보를 모두 자신만의 포멧에 맞게
데어터로 기억해 두었다가 이것을 저장하고 다시 불러오는 것입니다.
라인을 그린다면 좌표와 굵기 색상등을 기억하면되고, 원을 그리면 중심 좌표와
반지름 굵기 색상등을 기억하면 되죠.. 각각을 그릴 때 마다 적당한 방법으로 리스트를
작성하여 일순회로 모두 다시 그릴수 있는 자신만의 드로우 함수도 만들어야하구요..
이런 방식으로 하면 일반적인 그림 그리는 툴의 실행 취소등도 구현할 수 있습니다.
이소룡 님이 쓰신 글 :
: 현재 제가 하려고 하는것은 그림 파일을 불러온 다음 그림위에다가 제가 마우스로 Line 을 그린 후 제가 마우스로 그린 Line 만 저장을 했다가 다시불러오게 하고싶습니다.
:
: 이미지 Load -> 마우스로 Line 그림 -> 내가그린 Line만 저장 -> 내가 그린 Line만 Load
:
: SavePictureDialog 를 사용하면 바탕그림 까지 다 저장이 됐다가 Load 했을때 바탕 그림까지 다 Load 가 되는데요...
:
: TFileStream *fileStream;
: fileStream = new TFileStream(fileName, fmCreate);
:
: if (fileStream)
: {
: fileStream->Write(&DownX, sizeof());
: fileStream->Write(&DownY, sizeof());
:
: }
:
: 만약 이런식으로 저장을해서 Down 좌표와 Up 좌표를 저장하고 불러오게되면 곡선을 그린경우나 이런경우에는 곡선모양이아니라
: 그냥 각각의 좌표를 연결해주는 Line만 불러와지더라구요....
:
: 무슨 방법이 없을까요 ?
|