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
[27044] Re:Re:Bitmap alpha blending?
bhp영화 [h1800] 1677 읽음    2003-09-03 09:25
답변 감사드립니다~ ^^;
이것저것 많이 얻어가게 되네요~ ^^;

감사합니다~ ^^

이지현 님이 쓰신 글 :
: Graphics32 라이브러리를 사용하신다면...
:
: 먼저 폼 위에 Image32 를 하나 떨궈 놓으시고
: 배경으로 쓸 이미지를 로드 합니다. (Image32란 이름으로 만들어졌다고 칩시다)
: Image32->Bitmap->LoadFromFile("배경화일명"); 하시든지 리소스에서 읽으시든지.. 하죠
: 그리고 나서 Layer 를 하나 올리면 되겠죠
: TBitmapLayer *bmplayer; 같은걸 폼 클래스의 헤더에 선언하시고
: bmplayer = new TBitmapLayer(Image32->Layers); 이렇게 하시면, 레이어가 Image32 위에 한장 올라가죠
: bmplayer->Bitmap->LoadFromFile("프레임화일명"); 하셔서 레이어에 이미지를 부르시고
: TFloatRect L;
: L.Left = 0;
: L.Top = 0;
: L.Right = bmplayer->Bitmap->Width;
: L.Bottom = bmplayer->Bitmap->Height;
: bmplayer->Location = L; 하셔서 레이어의 이미지가 실제 크기대로 나타나게 할 수 있습니다.
: (Location 에 정의된 크기로 이미지가 Stretch 되거든요)
: 프레임이미지가 알파값을 가진 이미지라면,
: bmplayer->DrawMode = dmBlend; 하시면 그 알파값이 그대로 화면에 반영됩니다.
:
: 만약 알파값이 있는 이미지를 사용하기 위해 PNG화일 포멧 같은걸 사용하시고 싶으시면
: 자료실에 있는 GraphicEx 라이브러리를 추가로 깔아주시면 되죠.
:
: Graphics32 라이브러리를 사용하지 않으신다면, 앞서 다른분이 설명해 주신대로 하시면 되죠
: 이 때, 이미지를 32bit 이미지로 관리를 하시는게 편하겠죠. 첫 byte 가 alpha 값이니까요
: 그렇게 하시지 않으신다면 별도로 마스크를 위한 이미지 버퍼를 두셔야 할테구요.
:
: 메모리에서 배경, 프레임 이렇게 두 개의 이미지를 두시고...
: 그게 화면에 그려질 땐 블랜딩해서 그려주는 함수를 하나 두시면 되겠죠.
: int mr = (배경의 빨강 & 알파값(배경은 기본적으로 알파값이 255겠죠? 그렇다면 무시해도 되죠)) +
:          (전경의 빨강 & 알파값);
: int mg = (배경의 녹색 ......;
: int mb = (배경의 파랑 ......;
: 처럼 하셔서
: if (mr > 255) mr = 255;
: if (mg > .....;
: if (mb > .....;
: 로 믹스된 점의색이 흰색을 초과해 뒤집어지는걸 막아 주신 다음
: RGB(mr, mg, mb) 하시면 블랜딩 된 점의 색이 나오겠죠.
: RGB는 매크로 함수인데 ((mr << 16) | (mg << 8) | mb) 하셔도 됩니다.
: 이런식으로 두 개의 이미지의 모든 점을 루프돌려 블랜딩하신 후 화면에 그려주면 되겠죠.
:

+ -

관련 글 리스트
26957 Bitmap alpha blending? bhp영화 1008 2003/08/27
27013     Re:Bitmap alpha blending? 이지현 1600 2003/08/31
33267         Re:Re:Bitmap alpha blending? 이지현 1116 2003/08/31
27044         Re:Re:Bitmap alpha blending? bhp영화 1677 2003/09/03
26973     Re:Bitmap alpha blending? 남병철.레조 1105 2003/08/28
27000         Re:Re:Bitmap alpha blending? bhp영화 1214 2003/08/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.