我有一个Delphi 6应用程序,从外部相机接收和处理图像流。由于它是CPU密集型的,我将代码放在后台线程中,以免干扰运行在主线程上的用户界面代码。我想使用从相机接收的JPEG帧创建的TBitmap更新表单或框架上的矩形区域。这些帧的接收速率为每秒25帧。
我想知道哪种方法可以给我最佳性能,以及要使用哪些Windows API调用或Delphi调用来实现它。我猜我不应该使用TImage或TPicture等VCL组件,因为它们运行在主线程上,我非常确定通过Synchronize()调用获取任何结果都会很低效,并且有减慢涉及线程的速度的潜力。我还想要一种提供平滑视频显示的技术,就像双缓冲控件一样,没有任何"条纹"效果。此外,任何有关正确Canvas锁定或设备上下文管理等方面的提示,尤其是有关避免释放资源中常见错误的提示,都将不胜感激。
当然,一个做我需要的事情的好的代码示例链接也是非常棒的。
我想知道哪种方法可以给我最佳性能,以及要使用哪些Windows API调用或Delphi调用来实现它。我猜我不应该使用TImage或TPicture等VCL组件,因为它们运行在主线程上,我非常确定通过Synchronize()调用获取任何结果都会很低效,并且有减慢涉及线程的速度的潜力。我还想要一种提供平滑视频显示的技术,就像双缓冲控件一样,没有任何"条纹"效果。此外,任何有关正确Canvas锁定或设备上下文管理等方面的提示,尤其是有关避免释放资源中常见错误的提示,都将不胜感激。
当然,一个做我需要的事情的好的代码示例链接也是非常棒的。