以前在VC中用过TransparentBlt函数
现在想在C#中实现功能:把bmp图片画到panel中去,panel中有背景图,要求画的bmp图片背景要透明化请各位高手指点一下,最好能给出完整代码,万分感谢!!!
Graphics g = panel_qipan.CreateGraphics();
Graphics gTemp = panel_qipan.CreateGraphics();
Image img = new Bitmap(Directory.GetCurrentDirectory().Substring(0,Directory.GetCurrentDirectory().Length - 10) + @"\res\RED_B.bmp"); Color c = Color.FromArgb(0, 0, 0);
IntPtr hdc = g.GetHdc();
IntPtr hdcTemp = gTemp.GetHdc();
TransparentBlt(hdc, 0, 0, 50, 50, hdcTemp, 0, 0, 50, 50, ParseRGB(c));
g.ReleaseHdc(hdc);
gTemp.ReleaseHdc(hdcTemp);
g.DrawImage(img, e.X - 25, e.Y - 25, 50, 50);
g.Dispose(); gTemp.Dispose();
现在想在C#中实现功能:把bmp图片画到panel中去,panel中有背景图,要求画的bmp图片背景要透明化请各位高手指点一下,最好能给出完整代码,万分感谢!!!
Graphics g = panel_qipan.CreateGraphics();
Graphics gTemp = panel_qipan.CreateGraphics();
Image img = new Bitmap(Directory.GetCurrentDirectory().Substring(0,Directory.GetCurrentDirectory().Length - 10) + @"\res\RED_B.bmp"); Color c = Color.FromArgb(0, 0, 0);
IntPtr hdc = g.GetHdc();
IntPtr hdcTemp = gTemp.GetHdc();
TransparentBlt(hdc, 0, 0, 50, 50, hdcTemp, 0, 0, 50, 50, ParseRGB(c));
g.ReleaseHdc(hdc);
gTemp.ReleaseHdc(hdcTemp);
g.DrawImage(img, e.X - 25, e.Y - 25, 50, 50);
g.Dispose(); gTemp.Dispose();
解决方案 »
- 关于WMS系统中货位与货物关系设计的疑问
- C#串口通讯的问题
- 怎么更改表中的的以有字段使其递增排列(求SQL语句)
- 消息队列简单问题
- C#调试的时说我没有调试权限
- VS2003 连接11G ORACLE报错
- 请教:匹配包含"abc"或"123"的字符串,这个正则表达式怎么写?
- WPF之获取当前某个ellipse控件
- 菜鸟求助 c# System.IO.FileNotFoundException问题
- 能推荐一个表格打印预览的免费控件吗?
- (Help)C#/C++/VB生成的DLL是否可以在不同语言环境下调用(在线等)
- 关于List<T>,IList,ICollection,IEnumerable
Graphics g = panel_qipan.CreateGraphics();
IntPtr memdc = CreateCompatibleDC(g.GetHdc());
SelectObject(memdc, qzBmp.GetHbitmap()); //背景透明化
Graphics gQZ = Graphics.FromHdc(memdc);
Graphics gQP = Graphics.FromImage(qpBmp);
IntPtr dcQZ = gQZ.GetHdc();
IntPtr dcQP = gQP.GetHdc();
TransparentBlt(dcQP, e.X - 25, e.Y - 25, 50, 50, dcQZ, 0, 0, qzBmp.Width, qzBmp.Height, ParseRGB(Color.White)); gQZ.ReleaseHdc(dcQZ);
gQP.ReleaseHdc(dcQP);
panel_qipan.BackgroundImage = qpBmp;
Graphics g = panel_qipan.CreateGraphics();
IntPtr memdc = CreateCompatibleDC(g.GetHdc());
SelectObject(memdc, qzBmp.GetHbitmap()); //背景透明化
Graphics gQZ = Graphics.FromHdc(memdc);
Graphics gQP = Graphics.FromImage(qpBmp);
IntPtr dcQZ = gQZ.GetHdc();
IntPtr dcQP = gQP.GetHdc();
TransparentBlt(dcQP, e.X - 25, e.Y - 25, 50, 50, dcQZ, 0, 0, qzBmp.Width, qzBmp.Height, ParseRGB(Color.White)); gQZ.ReleaseHdc(dcQZ);
gQP.ReleaseHdc(dcQP);
panel_qipan.BackgroundImage = qpBmp;
Graphics g = panel_qipan.CreateGraphics();
IntPtr memdc = CreateCompatibleDC(g.GetHdc());
SelectObject(memdc, qzBmp.GetHbitmap()); //背景透明化
Graphics gQZ = Graphics.FromHdc(memdc);
Graphics gQP = Graphics.FromImage(qpBmp);
IntPtr dcQZ = gQZ.GetHdc();
IntPtr dcQP = gQP.GetHdc();
TransparentBlt(dcQP, e.X - 25, e.Y - 25, 50, 50, dcQZ, 0, 0, qzBmp.Width, qzBmp.Height, ParseRGB(Color.White)); gQZ.ReleaseHdc(dcQZ);
gQP.ReleaseHdc(dcQP);
panel_qipan.BackgroundImage = qpBmp;