Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
(급)터치스크린에서 싸인을 하고 BMP로 저장하는 방법을 알고싶습니다.
델파이의 초보인데 저에게 어려운 숙제가 생겨서 이렇게 글을 올립니다.
터치스크린화면에서 일정한 image box안에 sign을 입력하면 그것을
인식한 후 bmp file로 pc에 저장을 해야 합니다.
고난도의 기술인것 같아서 자문을 요청합니다.
도와주십시요..
2
COMMENTS
윤진화
•
2000.04.11 06:09
제 나름대로 간략한 그림그리기 기법을 통해서 그 그려진 그림을 BMP파일로 저장하는
예제를 아래에 올립니다. 참고하세요.
터치스크린 = 마우스..아시죠?
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
//이 버튼프로시져는 이미지컴포넌트를 하얀백지상태로 만듭니다.
//"FillRect"대신 FloodFill를 쓰세요!
procedure TForm1.Button1Click(Sender: TObject);
var
MyRect : TRect;
begin
MyRect.Left := 0;
MyRect.Top := 0;
MyRect.Bottom := 10;
MyRect.Right := 10;
Image1.Canvas.FillRect(MyRect);
end;
//이 부분이 중요한데요. 전 간단하게 마우스를 움직이면 빨간점이 생기도록 했습니다.
//원하시는 내용이 아니지만요. 마우스 왼쪽 버튼을 클릭한 상태에서 움직이면 그려져야하죠?
//그러기 위해서 "MouseDown" 이벤트와 "MouseUp" 이벤트에 상태 플래그, 즉 상태임수변수를
//하나 만들어 주고
//현재 마우스가 움직이는데 왼쪽버튼이 눌려져 있는냐? 그러면 그리고
//왼쪽 버튼을 땠느냐? 그러면 그리기를 취소하고...
//그림 그리는것도 픽셀에 색상을 입히는게 아니라 라인이나 다른 그리기 함수를 쓰셔야 합니다.
//"싸인"이니깐 쫌 부드럽게 그려져야 하니깐요!
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Image1.Canvas.Pixels[X,Y] := clRed;
end;
//그려진 그림을 파일로 저장하는 버튼의 프로시져입니다.
//임시 Bitmap 개체를 생성하고
//그 Bitmap 개체에 Image1에 그려진 내용을 할당하고 저장합니다.
procedure TForm1.Button2Click(Sender: TObject);
var
SaveBitmap : TBitmap;
begin
SaveBitmap := TBitmap.Create;
SaveBitmap.Assign(Image1.Picture);
SaveBitmap.SaveToFile('c:tempsample.bmp');
SaveBitmap.Free;
end;
end.
도움이 됐으면 합니다. 그럼~~
0
0
삭제
수정
댓글
정상락
•
2000.04.15 02:13
윤진화씨 정말로 감사합니다.
덕분에 간단하게 해결이 되었습니다.
진심으로 감사드리며 좋은 하루가 되시길 바랍니다.
윤진화 wrote:
> 제 나름대로 간략한 그림그리기 기법을 통해서 그 그려진 그림을 BMP파일로 저장하는
> 예제를 아래에 올립니다. 참고하세요.
> 터치스크린 = 마우스..아시죠?
>
> type
> TForm1 = class(TForm)
> Image1: TImage;
> Button1: TButton;
> Button2: TButton;
> procedure Button1Click(Sender: TObject);
> procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
> Y: Integer);
> procedure Button2Click(Sender: TObject);
> private
> { Private declarations }
> public
> { Public declarations }
> end;
>
> var
> Form1: TForm1;
>
> implementation
>
> {$R *.DFM}
>
> //이 버튼프로시져는 이미지컴포넌트를 하얀백지상태로 만듭니다.
> //"FillRect"대신 FloodFill를 쓰세요!
> procedure TForm1.Button1Click(Sender: TObject);
> var
> MyRect : TRect;
> begin
> MyRect.Left := 0;
> MyRect.Top := 0;
> MyRect.Bottom := 10;
> MyRect.Right := 10;
> Image1.Canvas.FillRect(MyRect);
> end;
>
> //이 부분이 중요한데요. 전 간단하게 마우스를 움직이면 빨간점이 생기도록 했습니다.
> //원하시는 내용이 아니지만요. 마우스 왼쪽 버튼을 클릭한 상태에서 움직이면 그려져야하죠?
> //그러기 위해서 "MouseDown" 이벤트와 "MouseUp" 이벤트에 상태 플래그, 즉 상태임수변수를
> //하나 만들어 주고
> //현재 마우스가 움직이는데 왼쪽버튼이 눌려져 있는냐? 그러면 그리고
> //왼쪽 버튼을 땠느냐? 그러면 그리기를 취소하고...
> //그림 그리는것도 픽셀에 색상을 입히는게 아니라 라인이나 다른 그리기 함수를 쓰셔야 합니다.
> //"싸인"이니깐 쫌 부드럽게 그려져야 하니깐요!
> procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
> Y: Integer);
> begin
> Image1.Canvas.Pixels[X,Y] := clRed;
> end;
>
> //그려진 그림을 파일로 저장하는 버튼의 프로시져입니다.
> //임시 Bitmap 개체를 생성하고
> //그 Bitmap 개체에 Image1에 그려진 내용을 할당하고 저장합니다.
> procedure TForm1.Button2Click(Sender: TObject);
> var
> SaveBitmap : TBitmap;
> begin
> SaveBitmap := TBitmap.Create;
> SaveBitmap.Assign(Image1.Picture);
> SaveBitmap.SaveToFile('c:tempsample.bmp');
> SaveBitmap.Free;
> end;
>
> end.
>
> 도움이 됐으면 합니다. 그럼~~
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
hj998811
2000.04.08 21:12
0
COMMENTS
/
0
LIKES
확장검색에 대해...
정상락
•
2000.04.08 20:50
2
COMMENTS
/
0
LIKES
(급)터치스크린에서 싸인을 하고 BMP로 저장하는 방법을 알고싶습니다.
델파이의 초보인데 저에게 어려운 숙제가 생겨서 이렇게 글을 올립니다. 터치스크린화면에서 일정한 image box안에 sign을 입력하면 그것을 인식한 후 bmp file로 pc에 저장을 해야 합니다. 고난도의 기술인것 같아서 자문을 요청합니다. ...
윤진화
•
2000.04.11 06:09
제 나름대로 간략한 그림그리기 기법을 통해서 그 그려진 그림을 BMP파일로 저장하는 예제를 아래에 올립...
정상락
•
2000.04.15 02:13
윤진화씨 정말로 감사합니다. 덕분에 간단하게 해결이 되었습니다. 진심으로 감사드리며 좋은 하루가 되...
장민석
•
2000.04.08 20:46
1
COMMENTS
/
0
LIKES
BDE error
이치형
•
2000.04.08 21:19
장민석 wrote: > 잘되던 프로그램이었는데 IP를 바꾸고 나서 다음과 같은 error 가 뜨네요 > 해결방법은 ...
강동길
•
2000.04.08 20:39
3
COMMENTS
/
0
LIKES
폼생성시에 data추출 <<정말 급해요!!>>
OD
•
2000.04.09 03:08
안녕하세요. OD입니다. OnDataChange Event의 맨 처음 부분에 다음을 추가해 보세요. if Field = nil the...
이치형
•
2000.04.08 21:33
강동길 wrote: > 사용환경 : WIN98, DELPHI 4, MS-SQL SERVER 7.0 > 안녕하세요... > 실력이 미흡하여 ...
강동길
•
2000.04.08 22:32
이치형님 답변에 감사드립니다. 에러 위치는 알고 있는데 왜 에러가 나는지 잘 모르거든요... qry_nego...
hee
•
2000.04.08 19:44
1
COMMENTS
/
0
LIKES
BDE를 쓰지 않고 데이터베이스에 연결하는 방법은 없나요
창백한달빛
•
2000.04.08 20:49
hee wrote: > 제목 그대로 입니다. bde나 odbc를 이용하지 않고 직접 연결 하는 방법이 없나해서요. ...
타락천사
•
2000.04.08 19:43
3
COMMENTS
/
0
LIKES
'Alt + G' key 를 받으려면???????
조규춘
•
2000.04.08 20:55
타락천사 wrote: > 안녕하세여.. 타락임다.. 꾸벅.. > > 한델에서 열쒸미 배우고 있섭니다.. 감사함다....
이치형
•
2000.04.08 21:10
타락천사 wrote: > 안녕하세여.. 타락임다.. 꾸벅.. > > 한델에서 열쒸미 배우고 있섭니다.. 감사함다....
타락천사
•
2000.04.08 21:06
안녕하세여.. 타락임다.. ^^ 3개 이상의 조합키가 궁금했는데, 해보니까 돼더군여..^^ ..님 감사합니...
사노테
•
2000.04.08 19:37
1
COMMENTS
/
0
LIKES
MDB연결 ODBC안쓰구...
이치형
•
2000.04.08 20:58
사노테 wrote: > BDE Administrator을 써서 DataBase DB 라고 하나 만들어 넣고여.. > 아무것두 안하구 ...
타락천사
•
2000.04.08 19:44
2
COMMENTS
/
0
LIKES
string, pChar를 ShortString으로의 변환함수는????
타락천사
•
2000.04.08 23:56
안녕하세여. 타락임다.. 꾸벅... 흠.. ..님이 답변해 주셨는데, 제 질문은 그게 아니였는데.. ^^;;;; ...
타락천사
•
2000.04.09 02:58
안녕하세여.. 타락임다.. 꾸벅.. ShortString 과 AnsiString을 구분해서 써야해여.. 제가 통신에 쓰...
황남철
2000.04.08 19:22
0
COMMENTS
/
0
LIKES
퀵 레포트 의 선그리기
황 현
2000.04.08 19:03
0
COMMENTS
/
0
LIKES
TServersocket 에 관해??
mr.Q
•
2000.04.08 12:16
3
COMMENTS
/
0
LIKES
배열
mr.Q
•
2000.04.08 13:18
헉~ i1이 하나의 변수인데, 제가 잘못봤습니다. 죄송~
최용일
•
2000.04.08 12:32
울랄랄라~ 델파이 6이 새로 나왔나 보네요... 저두 하나 보내주세요... 델파이 1~5까진 안되는 내용인데...
mr.Q
•
2000.04.08 12:48
헉~~ 아직 안주무시나요? 무지 배고픈 밤이네요. ^^ 저 코드를 쓴 사람은, 델4를 썼는데, 문법을 개조한 ...
강광주
2000.04.08 11:23
0
COMMENTS
/
0
LIKES
전화접속 네트워킹 설정
김종호
•
2000.04.08 10:51
2
COMMENTS
/
0
LIKES
TDBCtrlGrid의 OnKeyPress Event에 대하여 자세히 올립니다
mr.Q
•
2000.04.08 12:43
이렇게 하니 되는군요. implementation {$R *.DFM} var keyTag:integer; procedure TForm1...
mr.Q
•
2000.04.08 13:16
일부 수정 mr.Q wrote: > > 이렇게 하니 되는군요. > > implementation > > {$R *.DFM} > va...
이용현
•
2000.04.08 08:33
2
COMMENTS
/
0
LIKES
filestream 의 create 의 리턴값이 없나요?
최용일
•
2000.04.08 23:01
안녕하세요. 최용일입니다. constructor는 객체에 인스턴스를 링크시키는 역활을 할 뿐 어떤 에러 코드...
음냐~
•
2000.04.08 08:47
이 질문은 밑빠진 독에 불부으면 물이 가득차냐는 질문이랑 같습니다. 이용현 wrote: > TFilestream.Cr...
강인규
•
2000.04.08 07:19
2
COMMENTS
/
0
LIKES
DBGrid 색변경 고수님의 도움이 필요합니다.
최용일
•
2000.04.08 10:52
안녕하세요. 최용일입니다. 에고~ 에고~ 두가지가 있다고 했는데 한가지만 설명드렸네요. 날이 갈수록 ...
최용일
•
2000.04.08 08:15
안녕하세요. 최용일입니다. 오른쪽 정렬은 아래와 같이 텍스트 출력하는 부분만 약간 수정하시면 될것 ...
임택종
2000.04.08 07:07
0
COMMENTS
/
0
LIKES
DBGRID에관한도움요청
황현동
•
2000.04.08 05:28
1
COMMENTS
/
0
LIKES
키보드 누르면.. 실행
조규춘
•
2000.04.08 06:17
황현동 wrote: > 무슨 키 누르면 뭐해라 (폼에서) > > 대충 아주 간단한 예제라도 하나 알려주세요 ...
황현동
•
2000.04.08 05:26
1
COMMENTS
/
0
LIKES
디렉토리 찾기
최용일
•
2000.04.08 23:16
안녕하세요. 최용일입니다. FindFirst, FindNext, FindClose함수를 이용하면 구현하실 수 있습니다. ...
그램린
2000.04.08 05:25
0
COMMENTS
/
0
LIKES
바이너리 타입 저장, 읽어오기
이규승
2000.04.08 05:20
0
COMMENTS
/
0
LIKES
Qreport에서 Group별 출력 문제
정상락
2000/04/08 20:50
Views
213
Likes
0
Comments
2
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
예제를 아래에 올립니다. 참고하세요.
터치스크린 = 마우스..아시죠?
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
//이 버튼프로시져는 이미지컴포넌트를 하얀백지상태로 만듭니다.
//"FillRect"대신 FloodFill를 쓰세요!
procedure TForm1.Button1Click(Sender: TObject);
var
MyRect : TRect;
begin
MyRect.Left := 0;
MyRect.Top := 0;
MyRect.Bottom := 10;
MyRect.Right := 10;
Image1.Canvas.FillRect(MyRect);
end;
//이 부분이 중요한데요. 전 간단하게 마우스를 움직이면 빨간점이 생기도록 했습니다.
//원하시는 내용이 아니지만요. 마우스 왼쪽 버튼을 클릭한 상태에서 움직이면 그려져야하죠?
//그러기 위해서 "MouseDown" 이벤트와 "MouseUp" 이벤트에 상태 플래그, 즉 상태임수변수를
//하나 만들어 주고
//현재 마우스가 움직이는데 왼쪽버튼이 눌려져 있는냐? 그러면 그리고
//왼쪽 버튼을 땠느냐? 그러면 그리기를 취소하고...
//그림 그리는것도 픽셀에 색상을 입히는게 아니라 라인이나 다른 그리기 함수를 쓰셔야 합니다.
//"싸인"이니깐 쫌 부드럽게 그려져야 하니깐요!
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Image1.Canvas.Pixels[X,Y] := clRed;
end;
//그려진 그림을 파일로 저장하는 버튼의 프로시져입니다.
//임시 Bitmap 개체를 생성하고
//그 Bitmap 개체에 Image1에 그려진 내용을 할당하고 저장합니다.
procedure TForm1.Button2Click(Sender: TObject);
var
SaveBitmap : TBitmap;
begin
SaveBitmap := TBitmap.Create;
SaveBitmap.Assign(Image1.Picture);
SaveBitmap.SaveToFile('c:tempsample.bmp');
SaveBitmap.Free;
end;
end.
도움이 됐으면 합니다. 그럼~~