【发布时间】:2016-04-29 13:22:46
【问题描述】:
我以 30 fps 的速度从相机接收位图图像,我需要在图片框中显示所有图像。
问题是 PictureBox 很慢!
我尝试实现一个启用了 DoubleBuffer 的自定义 PictureBox,但问题没有解决。
您是否有可以更快显示图像的自定义 PictureBox 或用户控件或解决方案?
附加信息:
图像分辨率为 2048x1088,灰度为 256(8 位图像)。
我使用 AForge.NET 来制作图像。
谢谢
【问题讨论】:
-
PictureBox 默认是双缓冲的。在显示图像之前关闭调整大小或找到一种快速的方法。
-
@TaW 在显示之前我已将图像调整为图片框大小。我的图片框是 1536x816 px,SizeMode 设置为 Normal。
-
使用 SizeMode.Normal,PictureBOX 不应增加开销。正如 Sebastion 所指出的,
PixelFormat在真正快速显示位图方面确实有很大的不同。确保也将其从默认值转换为32bppPArgb!是的,转换需要时间,但在展示上节省的时间应该更多.. -
@TaW 如何将当前图像转换为 32bppPArgb?当图像在 32bppPArgb pictureBox 中时会更快吗?
-
这应该同时做:
Bitmap bmp2 = bmp.Clone(new Rectangle(Point.Empty, newSize), PixelFormat.Format32bppPArgb);
标签: c# bitmap computer-vision picturebox