我创建了一个图片框,并在第一次请求到我的服务器时检索完整的桌面并显示它。在随后的每一个请求中,我只会得到差异化的图像,除了有变化之外,它在任何地方都是透明的。
如何将这两个图像“叠加”在一起?或者将它们组合在我的图片框中?
谢谢!
答案 0 :(得分:1)
http://dandar3.blogspot.com/2011/01/picturebox-with-transparent-overlay.html
此链接显示如何使一个图片框透明并在其上叠加另一个图片框。
答案 1 :(得分:1)
试试这个:
for (var x = 0; x < sourceBitmap.Width; x++)
{
for (var y = 0; y < sourceBitmap.Height; y++)
{
var pixelColor = sourceBitmap.GetPixel(x, y);
// copy all non-transparent pixels
if (pixelColor.A != Byte.MaxValue)
{
destinationBitmap.SetPixel(x, y, pixelColor);
}
}
}
我假设sourceBitmap和destinationBitmap都是System.Drawing.Bitmap对象。源位图将是你在图片框中显示的那个,但是不要使用pictureBox.Image属性返回的那个,用Clone()方法创建一个副本然后进行交换,否则你会得到例外。
如果此方法太慢,您可以尝试使用直接内存访问来操作位图数据,使用Bitmap对象上的LockBits和UnlockBits方法。