精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>图形图像及多媒体专题>>关于透明位图

主题:关于透明位图
发信人: e-dd()
整理人: wenbobo(2002-07-10 16:43:27), 站内信件
谁能给我贴一个透明位图拷贝的例子吗?
我买的书上只是大概说了一下,没有说清楚.

--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 61.128.152.116]
发信人: laical (阿凡), 信区: CLanguage
标  题: Re: 透明位图
发信站: 网易虚拟社区 (Sun Sep 19 11:35:20 1999), 站内信件

【 在 e-dd (edd) 的大作中提到: 】
: 谁能给我贴一个透明位图拷贝的例子吗?
: 我买的书上只是大概说了一下,没有说清楚.
我也大概说一下,你可以做两幅图。一幅为原图,ColorKey用RGB(0,0,0)
另一幅则作特殊处理,把原中有象数的点都置成RGB(0,0,0),其它为RGB(255,255
,255)
这样你就可以先用这特殊处理的图进行AND操作写到屏幕上,再用原图进行XOR操
作这样就完成了。


--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.125.99]
发信人: wokao (wokao), 信区: CLanguage
标  题: Re: 透明位图
发信站: 网易虚拟社区 (Sun Sep 19 16:52:10 1999), 站内信件

【 在 e-dd (edd) 的大作中提到: 】
: 谁能给我贴一个透明位图拷贝的例子吗?
: 我买的书上只是大概说了一下,没有说清楚.
用BCB就very easy
Graphics::TBitmap *bmp=new Graphics::TBitmap();
bmp->LoadFromFile("temp.bmp");
bmp->Transparent=true;
bmp->TransparentColor=clWhite;
Canvas->Draw(1,1,bmp);
这样在Canvas上画的bmp就mask 白色的



--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.101.254]



发信人: leex (leex), 信区: CLanguage
标  题: to:EDD 位图眼码
发信站: 网易虚拟社区 (Sun Sep 19 21:29:56 1999), 站内信件
void TransBlt(HDC hdcDest,int nXDest,int nYDest, int nWidth, int nHeig
ht, HDC hdcSrc, int nXSrc, int nYSrc,COLORREF crColour)
{
        COLORREF crOldBack = SetBkColor(hdcDest,RGB(255,255,255));
        COLORREF crOldText = SetTextColor(hdcDest,0);
        HDC dcTrans;
        dcTrans = CreateCompatibleDC(hdcDest);
        HBITMAP bitmapTrans;
        bitmapTrans = CreateBitmap(nWidth, nHeight, 1, 1, NULL);
        HBITMAP OldBitmapTrans = (HBITMAP)SelectObject(dcTrans,bitmapTrans);
        COLORREF crOldBackSrc = SetBkColor(hdcSrc,crColour);
        BitBlt(dcTrans,0, 0, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, SRCCOPY);
        BitBlt(hdcDest,nXDest, nYDest, nWidth, nHeight, hdcSrc, 0, 0, SRCINVE
RT);
        BitBlt(hdcDest,nXDest, nYDest, nWidth, nHeight, dcTrans, 0, 0, SRCAND
);
        BitBlt(hdcDest,nXDest, nYDest, nWidth, nHeight, hdcSrc, 0, 0, SRCINVE
RT);
        SelectObject(dcTrans,OldBitmapTrans);
        
        DeleteDC(dcTrans);
        DeleteObject(bitmapTrans);
        SetBkColor(hdcDest,crOldBack);
        SetBkColor(hdcSrc,crOldBackSrc);
        SetTextColor(hdcDest,crOldText);
}
--
http://node.126.com
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.98.36.145]



[关闭][返回]