【发布时间】:2013-01-02 01:46:08
【问题描述】:
在我的 C# 程序中,我有一个 Picturebox,我想在其中显示视频流(连续帧)。我收到原始数据,然后将其转换为位图或图像。我可以一次显示一张图像而不会出现问题(重现视频流)。
现在我的问题是我想合并 2 个或多个具有相同大小和 alpha 值 (ARGB) 的位图(如图层)并将其显示在图片框上。
我已经阅读了很多关于 SO 的网站和帖子,但很多都使用 Graphics 类,我就是无法在我的应用程序上绘制它(很可能是因为我是 C# 新手!并且已经有我的程序设置,所以我不想改变结构)。
我需要(知道)什么:
- 如何用 alpha 值覆盖两个或多个位图;
- 请不要进行像素操作,我们无法承受这样的性能成本。
非常感谢您!
注意:我认为这个问题不应该被标记(或关闭)为重复,因为我在 SO 中找到的所有内容都是通过像素操作或通过 Graphics 类完成的。 (但我可能错了!)
编辑:可能的解决方法(不是问题的解决方案)
在
A PictureBox Problem,第四个答案(来自用户 comecme)告诉我有 2 个图片框,一个在另一个之上。为了使它与这种方法一起工作,我必须做的唯一(额外)事情是:
private void Form1_Load(object sender, EventArgs e)
{
pictureBox2.Parent = pictureBox1;
}
pictureBox2 将是最上面的那个。
我不会认为这是解决此问题的方法,因为我认为这是一种解决方法(特别是因为拥有 10 个以上的图片框似乎并不理想!哈哈)。这就是为什么我会留下这个问题,等待对我的问题的真实答案。
编辑:已解决!检查我的答案。
【问题讨论】:
-
0x69 thks 的答案,但这个应用程序是一个更大的“系统”的一部分,要向公众发布,所以我期待一些更容易/不管外部框架的东西..
-
性能提升往往伴随着复杂性的损失。
-
我确实知道 0x69 :) 但我现在正在搜索关于拥有两个具有“父母关系”的图片框,正如我刚刚在 SO 上找到的那样。不完全是我想要的,但结果是一样的。找到答案后,我会更新我的问题。谢谢
标签: c# bitmap picturebox alpha alphablending