CImage和Gif透明的问题 我用CImage来显示Gif图片,图片的背景是透明的。用TransparentBlt来绘制应该怎么设置crTransparent参数?怎么实现绘制后的透明背景效果? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另一种是动态生成掩码位图。本文将介绍动态生成掩码位图绘制具有透明区域位图的方法。一、TransparentBlt 函数的使用 TransparentBlt 函数在Windows98/Windows2000以上版本运行,系统中需要包含 Msimg32.dll,使用时可以链接 Msimg32.lib。Windows98下的TransparentBlt会产生资源泄漏,所以不建议在WIN98下使用该函数。TransparentBlt函数原型如下: BOOL TransparentBlt(HDC hdcDest, // 目标DCint nXOriginDest, // 目标X偏移int nYOriginDest, // 目标Y偏移int nWidthDest, // 目标宽度int hHeightDest, // 目标高度HDC hdcSrc, // 源DCint nXOriginSrc, // 源X起点int nYOriginSrc, // 源Y起点int nWidthSrc, // 源宽度int nHeightSrc, // 源高度UINT crTransparent // 透明色,COLORREF类型);使用示例: CBitmap FootballBMP;FootballBMP.LoadBitmap(IDB_FOOTBALLBMP);CDC ImageDC;ImageDC.CreateCompatibleDC(pDC);CBitmap *pOldImageBMP = ImageDC.SelectObject(&FootballBMP);TransparentBlt(pDC->m_hDC, 0, 0, 218, 199, ImageDC.m_hDC, 0, 0, 218, 199, RGB(0,0,0xff));ImageDC.SelectObject(pOldImageBMP); 这个方法我也大致会用,可是我不知道透明色怎么设置。你的方法里把蓝色设置为了透明色。用IE打开一个背景透明的GIF图片,显示出来的图像也是背景透明的,而对于IE来说它不知道这个gif到底应该把什么颜色设置为透明色。我的程序怎么做到这一点呢? 好像GIF左上角一点是透明色,不肯定。 不一定,有些不是.试过一个gif,我把左上角(0,0)的颜色提取出来设置为透明色,结果该透明的没透明,不该透明的透明了. 问 用vc开发压缩解压的详细方法和过程 急用 vc6 sql2008 CreateInstance不支持此接口 数值类型问题 如何才能象flashget一样下载文件后,文件的修改日期和服务器上的一样。 请教:基于MMC SDK 1.2开发的SnapIns是否可以支持Windows 2000/XP? 窗口隐藏的问题 各位前辈,从多播组中退出的命令的是什么? 急急急 VC数据库访问 请大家看看 求救!请问CListCtrl显示时能不能调出网格线? 如何在按钮上动态加载bmp的图片,并且不让他在界面刷新的时候被清除掉???? 如何添加一个button控件的右键事件?
Windows98下的TransparentBlt会产生资源泄漏,所以不建议在WIN98下使用该函数。
TransparentBlt函数原型如下: BOOL TransparentBlt(HDC hdcDest, // 目标DCint nXOriginDest, // 目标X偏移int nYOriginDest, // 目标Y偏移int nWidthDest, // 目标宽度int hHeightDest, // 目标高度HDC hdcSrc, // 源DCint nXOriginSrc, // 源X起点int nYOriginSrc, // 源Y起点int nWidthSrc, // 源宽度int nHeightSrc, // 源高度UINT crTransparent // 透明色,COLORREF类型);使用示例: CBitmap FootballBMP;FootballBMP.LoadBitmap(IDB_FOOTBALLBMP);CDC ImageDC;ImageDC.CreateCompatibleDC(pDC);CBitmap *pOldImageBMP = ImageDC.SelectObject(&FootballBMP);TransparentBlt(pDC->m_hDC, 0, 0, 218, 199, ImageDC.m_hDC, 0, 0, 218, 199, RGB(0,0,0xff));ImageDC.SelectObject(pOldImageBMP);
用IE打开一个背景透明的GIF图片,显示出来的图像也是背景透明的,而对于IE来说它不知道这个gif到底应该把什么颜色设置为透明色。我的程序怎么做到这一点呢?
试过一个gif,我把左上角(0,0)的颜色提取出来设置为透明色,结果该透明的没透明,不该透明的透明了.