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
[50425] Re:Re:Re:[재질문] bmp 투명 그리기
intothefree [] 2115 읽음    2007-08-31 10:13
질문이 난잡해서 그림으로 표현해봤습니다.
위에 질문을 지우려고 했는데 비번을 설정안해서 못지우는군요
첨부한 그림을 보면 왼쪽처럼 나오는데 오른쪽처럼 처리하고 싶은겁니다
부탁드리겠습니다. 수고들 하십시요

intothefree 님이 쓰신 글 :
: 설명 감사드립니다.
: 그런데 잘 이해가 가지않는부분이 있습니다.
: 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 투명 그리기 이현진 3295 2007/08/31
50430         Re: 감사합니다. 궁금증을 완벽히 해결해주셨군요 intothefree 1543 2007/08/31
50422     Re:[질문] bmp 투명 그리기 장성호 1943 2007/08/31
50423         Re:Re:[질문] bmp 투명 그리기 intothefree 1976 2007/08/31
50425             Re:Re:Re:[재질문] bmp 투명 그리기 intothefree 2115 2007/08/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.