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
[64687] Re:버튼 투명화 구현 가능하신분??..
Nibble [gameover] 2250 읽음    2011-06-23 18:23
Graphics32 안에 필요한 코드는 다 있습니다.

반투명이란건 투명을 0, 불투명을 255로 정의한 알파값을 이용해
그려 넣을 R, G, B 와 배경 R, G, B 를 적절히 합성하는 처리니까요.
전경 RGB 를 fR, fG, fB 로 두고 배경 RGB를 bR, bG, bB 로 둔다면
합성된 R, G, B 는
R = (fR * alpha + bR * (255 - alpha)) / 255;
G = (fG * alpha + bG * (255 - alpha)) / 255;
B = (fB * alpha + bB * (255 - alpha)) / 255;
처럼 되겠죠. 이런식들이 Graphics32 안에 다 구현되어 있고요

폼의 배경을 메모리로 복사해 와서 그려 넣을 버튼 이미지의 알파값과 마스터알파값을 곱해
최종적으로 그려넣도록 버튼 컨트롤을 만들어 주시면, 첨부하신 결과물을 얻으실 수 있습니다.

버튼 컴포넌트 소스들을 찾아보시고,
Graphcis32 소스도 분석해 보시면, 멋진 컴포넌트를 만드실 수 있을겁니다.
그리고, 반투명 이미지를 지원하는 포멧은 PNG밖에 없으니,
이미지를 소스로 버튼을 구성하시려면 포토샵에서 반투명으로 그리신 다음, PNG로 저장하시는게 좋을겁니다.

p.s. 좀 우스운 이야기지만, 투명화 구현이란 Visible = false 로 됩니다.
반투명이라고 해야 그나마 적절할 것 같네요.

궁금해요! 님이 쓰신 글 :
: 음... 인터넷에서 찾은 파일인데요...
:
: 두번째 보시면 투명화 되는 버튼인데요
:
: 저렇게 하려면 어떻게 해야 할지 ㅎㅎ...
:
: 신기하기도 하고 유용하게 쓸수 있을 것 같아서요
:
: 구현 가능하시면 소스좀 공개 해주세요 ㅠ
:
:
: ps. MFC로 만들어진 파일 입니다... 빌더로도 가능 하지 않을까 해서 물어봅니다 ㅠ...
:       그리고 혹시 출처도 남겨야 하나요???  -ㅁ-??

+ -

관련 글 리스트
64684 버튼 투명화 구현 가능하신분??.. 궁금해요! 1209 2011/06/23
64687     Re:버튼 투명화 구현 가능하신분??.. Nibble 2250 2011/06/23
64693         Re:Re:버튼 투명화 구현 가능하신분??.. 궁금해요! 1819 2011/06/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.