C++ - Matemática: como fazer efeitos entre pixels entre HBITMAP's?

Cambalinho

Power Member
eis como crio o meu HBITMAP:
Código:
void New(unsigned int SizeWidth, unsigned int SizeHeight, COLORREF BackColor=RGB(0,0,0))
        {
            int BufferSize = SizeWidth * SizeHeight * sizeof(RGBQUAD);

            if(BufferMemory) Disposed();
            BufferMemory = VirtualAlloc(0, BufferSize,MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
            Pixels =static_cast<RGBQUAD *> (BufferMemory);

            Width = SizeWidth;
            Height = SizeHeight;
            ZeroMemory(&BitInfo, sizeof(BITMAPINFO));
            BitInfo.bmiHeader.biSize = sizeof(BitInfo.bmiHeader);
            BitInfo.bmiHeader.biWidth = Width;
            BitInfo.bmiHeader.biHeight = -Height;
            BitInfo.bmiHeader.biPlanes = 1;
            BitInfo.bmiHeader.biBitCount = 32;
            BitInfo.bmiHeader.biCompression = BI_RGB;
            //BitInfo.bmiHeader.biSizeImage =  BitInfo.bmiHeader.biWidth  * (-BitInfo.bmiHeader.biHeight)* sizeof(RGBQUAD);
            HBitmap = CreateBitmap(Width, Height,1,32,Pixels);
            HDCBitmap = CreateCompatibleDC(NULL);
            OldHBitmap= (HBITMAP)SelectObject(HDCBitmap, HBitmap);
            Clear(BackColor);
        }
agora tenho os pixels entre o HBITMAP e o destino(mesmo que seja HDC).
eu preciso de saber:
1 - será que a criação do HBITMAP permite usar o Alpha\Opacy?
2 - como calcular os 2 pixels para poder fazer o Opacy\AlphaBlend?
já fiz muitas pesquisas e admito que tenho a mesma pergunta noutros forums, mas sem sucesso :(
 
Back
Topo