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
[50423] Re:Re:[질문] bmp 투명 그리기
intothefree [vartes] 1975 읽음    2007-08-31 09:55
설명 감사드립니다.
그런데 잘 이해가 가지않는부분이 있습니다.
Transparent 가 부모 dc에 그림을 그리고 제가 지정한 투명색은 그리지 않는다면,
image1 에 그림조각1을 그리고 나중에 그림조각2를 그림조각3을 계속 덮붙이면
그림조각2의 clFuchsia 색상부분이 투명이되어 그림을 그리지 않으니 그림조각1이 비쳐져야 하는데
그냥 form1이 보여집니다.
혹시 Transparent는 제가 지정한 조각그림 사이즈만큼을 그리고 나중에 그중에서 투명색만 골라서 그리는건가요?

다시 질문을 정리하자면
1) Transparent지정되면 부모DC에 그림을 그리는 도중에 메모리에서 지정색이 빠지는건지
2) Transparent지정되면 원래 조각사이즈만큼 영역을 잡아두고 그리는순간 clFuchsia만 빼버려서 바탕이 보이는건지

결과를 봐서는 2번같은데.. 1번이면 제가 원하는대로 먼저 그린그림이 비쳐야 할거같은데요
만약 그렇게 되면 진정한 Transparent 효과가 아닌거같네요 단한번만 사용이 가능한 버튼이같은데만 쓸수있을같은데

이를 제가 원하는대로 하려면 어떤방법을 써야합니까 ..
질문이 깔끔하지 못해서 죄송합니다..



장성호 님이 쓰신 글 :
: [GraphicControl에 대해]
: TImage는 핸들이 없는 GraphicControl입니다.
: Canvas가 있지만 진짜 화면에 보여지는 Canvas가 아니죠
: 즉 TImage는 자신의 Parent의 DC에다가 자신이 가지고 있는 Image를 그립니다.
: 모든 GraphicControl이 다 그렇습니다.
:
: [Transparent에 대해]
: TImage의 Transparent기능은 자신이 가지고 있는 이미지 중에서
: 특정 색상은 Parent DC에 그리지 않는다는것입니다.
:
: TImage의 경우 Transparent  색상을 특별히 정해주지 않으면
: {0,0} 위치의 Pixcel 색상이  Transparent 색상이 됩니다.
: TransparentColor  는 아래와 같이 설정해 줍니다.
: Image1->Picture->Bitmap->TransparentColor =  clFuchsia;
:
: [프로그램에 대해]
:
: 1. TransparentColor   에 대해
:
: 아래와 같이 코딩하면 TransparentColor  는 clFuchsia 이 되겟죠
:     Image1->Canvas->Pen->Color=clFuchsia;
:     Image1->Canvas->Brush->Color=clFuchsia;
:
:     Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height);
:     Image1->Transparent= true;
:     Image1->Picture->Bitmap->TransparentColor =  clFuchsia;
:
: 프로그램에서 Image1의  Parent 는 Form1 이잖아요
: Form1의 색상은 clBtnFace이구
: 그래서  Image1의 clFuchsia 색상 부분은 모두 clBtnFace 색상으로 나온것입니다.
:
: 2. TImage는 Transparent 속성에 의해
:     자신이 가지고 있는 Color를 변경하는것이 아니라
:     Parent에 단지 TransparentColor  색상을 칠하지 않는다..
:    즉 Image2에 있는 Image1에 copy할때는 색상은 그대로 복사되어서  Image1이 가지고 있게 되죠
:
:
:
:
:
: 박대성 님이 쓰신 글 :
: : 폼에 이미지 콤포넌트 image1, image2 를 올려놓고
: :
: : image2에서 일부를 읽어서 투명을 적용하여 image1에 그려보려고 합니다.
: : 잘라서 그려보면 투명처리가 되는게 아니고 지정된 색이 바닥색으로 바뀌는 효과가 되는군요
: :
: : 샘플을 참조해봤습니다.
: :
: : 도형을 그리고 스프라이트를 올려보면 스프라이트 외곽이 투명이 되어 도형이 비치는게 아니고
: : 바닥회색이 나타나는군요..
: :
: : 적용은 transparent 를 true 하고 이미지를 잘라서 붙여본것입니다.

+ -

관련 글 리스트
50421 [질문] bmp 투명 그리기 박대성 1993 2007/08/31
50427     Re:[질문] bmp 투명 그리기 이현진 3294 2007/08/31
50430         Re: 감사합니다. 궁금증을 완벽히 해결해주셨군요 intothefree 1542 2007/08/31
50422     Re:[질문] bmp 투명 그리기 장성호 1942 2007/08/31
50423         Re:Re:[질문] bmp 투명 그리기 intothefree 1975 2007/08/31
50425             Re:Re:Re:[재질문] bmp 투명 그리기 intothefree 2115 2007/08/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.