C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[29709] Re:[질문] 폼에 그림을 그릴때
김성연 [sykim25] 967 읽음    2004-05-13 08:52
최정규 님이 쓰신 글 :
: 항상 도움만 받습니다. 또 초보 질문입니다.
:
: 1. 예를 들어 폼에 원을 그린다음
:    Form1->Canvas->Brush->Color=clRed;
:    Form1->Canvas->Ellipse(20,20, 50,50);
: 2. 그 원의 일부분과 겹치게 이미지를 띠우고, 이미지 위에 그림을 그리되..
:    Form1->Image1->Canvas->Rectangle(10, 10, 30, 30);
: 3. 맨처음 폼에 그린 원이 이미지에 그대로 드러나게 하고 싶습니다.
:
: 이미지에 transparent property를 주었더니 이미지가 투명하게 되긴 되는데, 폼의 바탕색이 드러나네요..저는 폼 위에 그린 그림이 그대로 드러났으면 했는데..도와주세요...
:
: 그림 미리 답변 감사드립니다.
:
이건 제가 많이 하는 부분이라 쉽게 설명이 되겠네요
Image 콤포넌트를 사용하시면 편리합니다.
Image->Picture->Bitmap 으로 멤버 Bitmap을 하나 갖게 되는데요,
처음에는 이것을 원하는 만큼 크기를 설정해 줍니다
Image->Picture->Bitmap->Width, Height;
그러면 메모리(오프스크린) 비트맵이 탄생되는 거죠.
그리고나서 그 비트맵 객체의 Transparent 속성을 true로 해주시고 TransparentColor 도 지정합니다.
그러고 나면 메모리 비트맵의 설정은 끝나게 되구요,
Image 자체의 보여질 수 있는 윈도우 크기를 설정합니다.
Image->Width, Height; 그러면 비트맵 객체와 무관하게 보여질 창 크기(컴퍼넌트 크기 자체)가 설정됩니다.
그리고 그것 자체의 Transparent 속성을 true로 해주셔야 되죠.

그리고나서는 Image->Canvas 객체를 이용하여 라인, 원, 다른 비트맵을 블릿하는 겁니다.
이것의 원리는 Canvas 메서드로 그려주는 모든 비트맵 결과물은 한마디로,
아까 생성한 메모리 비트맵에 저장되니까, 그것을 에디트하는 거라 생각하시면 됩니다.

+ -

관련 글 리스트
29693 [질문] 폼에 그림을 그릴때 최정규 919 2004/05/12
29709     Re:[질문] 폼에 그림을 그릴때 김성연 967 2004/05/13
29704     Re:[질문] 폼에 그림을 그릴때 방태윤 867 2004/05/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.