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
[46361] Re:brush 투명도 조절하는 법
김상구.패패루 [peperu] 2974 읽음    2006-08-30 14:48
세가지 방법이 있습니다.

하나는 GDI만 써서 처리하는 방법입니다만 픽셀단위로 배경픽셀과 그릴 색을 합성하는 방법으로 투명도 값을 이용해 블랜딩하는겁니다. 90%투명도라면 배경색 * (1 - 0.9) + 브러시색 * 0.9 이런식으로 계산되겠죠. 물론 0~255 값을 가지도록 처리해줘야합니다. 가장 원론적이고 기본적인 방법입니다만 속도를 내려면 상당한 내공이 필요합니다.

또 하나는 간단하게 GDI+를 이용하는 방법으로, GDI+에서는 기본적으로 투명도를 지원합니다.

마지막은 DirectDraw를 이용하는 방법입니다. 가장 고속으로 처리할 수 있습니다.

제가 보기엔 GDI+를 적용하는것이 가장 적합해 보이는군요.

잠스터 님이 쓰신 글 :
: Polygon이나 Rectangle 함수로 어떤 영역을 그릴 때,
: 내부 영역은 완전 투명이 아닌 반투명으로 해서 배경의 색이 비치게 그리고 싶습니다.
:
: 완전 투명 브러쉬는
:     LOGBRUSH lplb;
:     lplb.lbStyle = BS_HOLLOW;
:     lplb.lbHatch = 0;
:     lplb.lbColor = RGB(0,0,0);
:     HBRUSH brush = CreateBrushIndirect(&lplb);
: 이렇게 구현했는데 반투명은 모르겠네요..
: 가령 빨간색 반투명 브러쉬는 어떻게 해야 하는지 답변 부탁드립니다...

+ -

관련 글 리스트
46149 brush 투명도 조절하는 법 잠스터 1148 2006/08/12
46361     Re:brush 투명도 조절하는 법 김상구.패패루 2974 2006/08/30
46166     Re:brush 투명도 조절하는 법 미루 2122 2006/08/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.