目标
将图像从 C 进程快速传递到 Python 进程。
细节
C 进程是一个命令行工具,可生成光栅图像。Python 进程是一个 GUI 应用程序,它要求 C 工具生成图像,然后显示这些图像。因此,用户(在他的操作之后)等待图像在 GUI 中显示。
速度要求
目前使用的系统是由 C 应用程序将文件写入磁盘,然后由 Python 应用程序读回。图像的大小可能以像素为单位不同(但大约为 1000x1000)。当前格式是未压缩的,但是使用压缩格式传输也很慢。
通常,需要创建和显示多个图像,因此也可以应用一些并行方法。然而,并行化本身(以及压缩)并没有使传输更快。
平台和许可证
解决方案应该是跨平台的,尤其是 GNU/Linux、MS Windows 和 Mac OS X。
该项目在 GNU GPL 2 或更高版本下,因此该解决方案应该是兼容的。
图书馆
该解决方案不应带来新的大型依赖项,例如 boost 库。更小,系统或已经使用的库更受欢迎。
C 应用程序正在使用 cairo 库。除非确实需要,否则最好不要添加新的依赖项。在极端情况下,可以使用 ctypes 将 C 代码包装到 Python 脚本中,但这不是首选。
Python 应用程序使用 wxPython、ctypes 和 PIL。可以添加新的依赖项,并且可以(甚至)包含新的库(但依赖项越少越好)。