Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#快速将位图加载到PictureBox_C#_Bitmap_Computer Vision_Picturebox - Fatal编程技术网

C#快速将位图加载到PictureBox

C#快速将位图加载到PictureBox,c#,bitmap,computer-vision,picturebox,C#,Bitmap,Computer Vision,Picturebox,我以每秒30帧的速度从照相机接收位图图像,并且我需要在一个pictureBox中显示所有图像。 问题是PictureBox非常慢 我已尝试实现启用双缓冲区的自定义PictureBox,但问题没有解决。 您是否有可以更快显示图像的自定义PictureBox、用户控件或解决方案? 其他信息: 图像分辨率为2048x1088,256灰度(8位图像)。 我使用一个org.NET来制作图像。 谢谢当需要调整图像大小以适应PB的客户端区域时,绘制图像的成本会很高。这在你的情况下是很可能的,因为你的图像非

我以每秒30帧的速度从照相机接收位图图像,并且我需要在一个pictureBox中显示所有图像。
问题是PictureBox非常慢
我已尝试实现启用双缓冲区的自定义PictureBox,但问题没有解决。
您是否有可以更快显示图像的自定义PictureBox、用户控件或解决方案?

其他信息:
图像分辨率为2048x1088,256灰度(8位图像)。
我使用一个org.NET来制作图像。


谢谢

当需要调整图像大小以适应PB的客户端区域时,绘制图像的成本会很高。这在你的情况下是很可能的,因为你的图像非常大。它使用高质量的双立方过滤器,使调整大小的图像看起来很好。这相当昂贵,尽管效果不错

为了避免这一开销,请在将图像指定给“图像”属性之前自行调整图像大小。使其与PB的ClientSize一样大


这本身会有很大的不同。接下来,您可以创建32bppPArgb像素格式的缩放位图。这种格式比其他格式快10倍左右,因为它与大多数机器上的视频适配器相匹配,因此无需进行像素格式转换。

当必须调整图像大小以适应PB的客户端区域时,绘制该图像的成本会很高。这在你的情况下是很可能的,因为你的图像非常大。它使用高质量的双立方过滤器,使调整大小的图像看起来很好。这相当昂贵,尽管效果不错

为了避免这一开销,请在将图像指定给“图像”属性之前自行调整图像大小。使其与PB的ClientSize一样大


这本身会有很大的不同。接下来,您可以创建32bppPArgb像素格式的缩放位图。这种格式比其他格式快10倍左右,因为它与大多数机器上的视频适配器匹配,因此不需要进行像素格式转换。

默认情况下,PictureBox是双缓冲的。在显示图像之前,请关闭调整大小功能,或者找到一种快速方法来进行调整。@TaW在显示图像之前,我已将图像调整为pictureBox大小。我的图片框是1536x816像素,SizeMode设置为正常。使用SizeMode.Normal,图片框不应增加开销。正如Sebastion所指出的,
PixelFormat
在真正快速显示位图方面确实起到了很大的作用。确保还将其从defualt转换为
32bppPArgb
!是的,转换需要时间,但在显示器上节省的时间应该更多。@TaW如何转换当前图像32bppPArgb?当图像位于32bppPArgb图片框中时,速度更快?这应该可以做到两个方面:
Bitmap bmp2=bmp.Clone(新矩形(Point.Empty,newSize),PixelFormat.Format32bppPArgb)PictureBox是双缓冲的。在显示图像之前,请关闭调整大小功能,或者找到一种快速方法来进行调整。@TaW在显示图像之前,我已将图像调整为pictureBox大小。我的图片框是1536x816像素,SizeMode设置为正常。使用SizeMode.Normal,图片框不应增加开销。正如Sebastion所指出的,
PixelFormat
在真正快速显示位图方面确实起到了很大的作用。确保还将其从defualt转换为
32bppPArgb
!是的,转换需要时间,但在显示器上节省的时间应该更多。@TaW如何转换当前图像32bppPArgb?当图像位于32bppPArgb图片框中时,速度更快?这应该可以做到两个方面:
Bitmap bmp2=bmp.Clone(新矩形(Point.Empty,newSize),PixelFormat.Format32bppPArgb)在显示之前,我已将图像调整为pictureBox大小。我的图片框是1536x816像素,SizeMode设置为正常。在显示之前,我已将图像大小调整为pictureBox大小。我的图片框是1536x816像素,SizeMode设置为正常。