|
오래 되서 잘 모르겠지만 비트맵 투명 출력은 API도 있는걸로 압니다.
그리고 투명 출력을 위해서는 2개의 이미지가 필요하고,
그 2개의 이미지를 비트연산 하면 되는 줄 압니다.
하나는 투영될 부분은 힌색, 이미지부분은 검은색인 이미지와 -------------1
하나는 투영될 부분만 검은 색인 이미지입니다.--------------2
먼저 1번을 and연산으로 복사 하신후 2번을 or연산으로 복사하시면 됩니다.
bitblt함수로 하시면 됩니다. bitblt의 레퍼런스를 살펴 보시기 바랍니다.
그럼
질문 님이 쓰신 글 :
: 질문 님이 쓰신 글 :
: : 그림을 그렷는데화면에 투명화시키려 하는데 투명화가안되요
: : 비트맵을불러와서 핸들에뿌렸거든요
: : 그런데 투명화하려는데 투명화가 되지않아요어떻게 하는지 알려주세요
: :
: : #define DLLSP __declspec(dllexport)
: : extern "C" DLLSP void __stdcall Win_Angle(const AnsiString FileName);
: : //extern "C" DLLSP int __stdcall Get_Hook();
: :
: : #pragma argsused
: : int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
: : {
: : return 1;
: : }
: : //---------------------------------------------------------------------------
: : void __stdcall Win_Angle(const AnsiString FileName)
: : {
: : HWND H = FindWindow(NULL,"팡야:시즌4");
: : if(H ==NULL) return;
: : else{
: : HDC DC = GetDC(H);
: : Graphics::TBitmap *wa=new Graphics::TBitmap;
: : wa->LoadFromFile(FileName);
: : wa->Transparent = true; <----여기이렇게
: : wa->TransparentColor = clWhite; <---여기도 이렇게했는뎅 안되요
: : BitBlt(DC,0,0,800,600,wa->Canvas->Handle,0,0,SRCCOPY);
: : ReleaseDC(H, DC);
: : }
: : }
: : dll내부소스에요
: 투명색을 하얀색으로할거거든요
: 순서바꿔봐도안되구그러네요
|