【问题标题】:Flex4/AIR with NativeProcess: How to pass an image to the native process?Flex4/AIR with NativeProcess:如何将图像传递给本机进程?
【发布时间】:2011-08-30 14:55:42
【问题描述】:

我正在尝试制作一个 AIR 应用程序,它需要将图像 (.jpg/.png) 传递给 C++ 应用程序,它会进行数字运算。(这需要经常进行,例如每 2-3 秒.) 我已经设法通过 AIR 将图像保存到磁盘来传递图像,然后用 C++ 程序打开这个文件(并将文件名作为参数传递给 C++ 程序),但是这种方法真的很慢,因为它涉及大量磁盘 I/O。

有没有办法将图像直接发送到本机进程?

编辑:http://www.marijnspeelman.nl/blog/2008/03/06/face-detection-using-flash-and-c-revisited/ 有一个使用套接字的良好 Flash-C++ 通信示例。这种方法的最大问题是,一些防火墙设置可能会阻止通信(当我启动应用程序时,我会收到 Windows 防火墙警告)。

【问题讨论】:

    标签: c++ apache-flex air


    【解决方案1】:

    有几种方法可以在两个进程之间传输数据。 最有效且易于设置的方法之一是使用 TCP 套接字。 这意味着您的 C/C++ 将处理 (TCP/HTTP) 请求,并且您的 AIR 程序将发送包含所有数据的请求。

    【讨论】:

    • 使用标准输入/输出不是更快吗?而且我不会遇到防火墙/通信问题? (例如,我的一个用户有一些讨厌的防火墙软件,会阻止通信)
    • 在使用标准 I/O 2 天后,这似乎不是一个可行的方法,因为通知 c++ 进程何时停止从输入读取确实很棘手(我远非 C++ 专家)。我用谷歌搜索了一个使用 c++ 和 AIR 的 TCP 套接字示例,但找不到一个.. 你知道有一个示例的网站吗?
    • 在 Flex/AIR 方面,你必须寻找 mx:HTTPService,它很容易使用。
    • 在 C++ 方面,我认为标准库中没有任何内容,因此您可以查看操作系统提供的套接字 api,也可以使用跨平台库。
    • 我在marijnspeelman.nl/blog/2008/03/06/… 找到了一个非常好的套接字服务器来实现我的目标。唯一的问题是,当我启动服务器时,它要求 Windows 防火墙许可。这意味着(我猜)我的应用程序将依赖于防火墙设置,这很糟糕。
    猜你喜欢
    • 2011-07-20
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多