【发布时间】:2011-02-01 22:34:56
【问题描述】:
目标
将一个进程生成的图像高效、高速地传递给另一个进程。这两个进程在同一台机器和同一桌面上运行。操作系统可能是WinXP、Vista和Win7。
详细说明
第一个过程仅用于控制与生成图像的设备的通信。这些图像的大小约为 500x300 像素,每秒可更新数百次。第二个过程需要这些图像来处理它们。第一个过程使用第三方 API 将图像从设备绘制到 HDC。这个 HDC 必须由我提供。
注意:两个进程之间已经打开了一个连接。它们通过匿名管道进行通信并共享内存映射文件视图。
想法
我将如何以尽可能少的工作来实现这一目标?我的意思是既为计算机工作,也为我工作(当然;))。我正在使用 Delphi,所以也许有一些组件可用于执行此操作?我想我总是可以绘制到任何图像组件的 HDC,将内容保存到内存流,通过内存映射文件复制内容,在另一侧解压缩并将其绘制到目标 HDC。我还阅读了有关可用于编组图像的 IPicture 接口。我需要它尽快,所以开销越少越好。我不希望仅仅通过复制一些图像来给机器带来压力。
你有什么想法?我很感激对此的每一个想法!
【问题讨论】:
-
如果图像每秒更新数百次,您可能需要研究任何现有的视频处理技术来处理高带宽视频数据,而不是图像处理。
标签: windows delphi image ipc marshalling