在24位网络摄像头源上覆盖透明背景的文本

时间:2011-08-10 16:59:33

标签: c# webcam directshow.net

我正在使用DirectShow.Net库来显示来自网络摄像头的Feed。我使用ISampleGrabber接口创建了捕获图,该接口使用包含指向视频帧缓冲区的指针的回调。我使用这个指针来创建.net位图,以及我使用Graphics.DrawString方法覆盖一些红色文本的Graphics对象。这需要一个Brush对象参数。当我绘制文本时,它以多色而不是红色显示。刷子是正确的,因为我正在使用预设的Brushes.Red。目前我认为这是因为刷子在32bpp上绘画但网络摄像头图像是24bpp。我可以创建一个临时的24bpp位图,将文本绘制到其上,然后将其覆盖在视频帧上,但这不会给我带有透明背景的文本。

有什么想法吗? (更容易的是更好)

由于

1 个答案:

答案 0 :(得分:0)

我认为有一个解决方案:使用32bpp创建一个新的位图,使用此位图图形在其上绘制网络摄像头图像“Graphics.FromImage(ourNewBitmap).Draw(theWebcam24Image)”,然后使用相同的图形绘制字符串,之后创建一个新的24位图并将生成的位图绘制到它,然后将最后生成的图像附加到网络摄像头。