有一张图片,如果图片的底色是黑色的,现在要这张图片贴到别的图片上面,请问如何去掉这张图片的黑色的底色,谢谢!!
解决方案 »
- 如何判断我当前的窗口是在最前面的?
- 将BSTR类型的数据转换为char*类型,数据丢失,请问改如何转换?
- 关于使用 MapVirtualKey 将按键的virtual key code映射为输出字符的问题!
- 急急急,vc调试的时候怎么看一行代码的汇编代码???
- 呵呵,明天考研开始开课了~(散分了)
- 如何不显示工具栏按钮的图像,我只想动态改变按钮上的文字?textout不行啊
- 用过函数zwCreateFile得朋友帮忙。
- 平心而论:大家觉得用VC/MFC来开发数据库怎么样?
- 如何初始化分隔条分隔框架窗口大小??
- 那位有关于bc(dos)开发的读图(640*480 256色)并显示的程序,小弟急用!!!!!
- 如何以双字节(16位)格式存储一个文件
- 请问一个CListCtrl问题,100分
BitMap.MakeTransparent(MakeTranColor);//MakeTranColor你的背景色
Bitmap bitmap(L"D:\\gz-2.BMP");
bitmap.MakeTransparent(Color(255,255,0,255));
graphics.DrawImage(&bitmap, 30, 0, bitmap.GetWidth(), bitmap.GetHeight());我的代码是这样的,编译时出现:error C2039: 'MakeTransparent' : is not a member of 'Bitmap',,
如果解决??
你可以设置ColorMatrix,它可以控制每个颜色成分。http://windowssdk.msdn.microsoft.com/en-us/library/ms533945.aspx
是设置整个图的透明程度,不是去掉图的底色吧。
要么就是laiyiling(Graphics) 这哥们说的.
当年我也找了好久那个函数...后来才知道不是vc的
这个也许是正解,还没有看
TransparentBlt
用法参考MSDN,级简单,设置好源图像和目标图像的HDC,贴图位置,大小和透明色
再直接调用就可以了。
ImageAttributes imAtt;
// 从Color(210,210,210,210) 到 Color(255,255,255) 色将被去掉
imAtt.SetColorKey(Color(210,210,210),Color(255,255,255));
//使用带ImageAttributes的输出函数,输出图象将imAtt中指定的色去掉
graphics.DrawImage(m_pImage,Rect(0,0,nWidth,nHeight),
0,0,nWidth,nHeight,UnitPixel,&imAtt);
以上是GDI+去背景色的方法