Linux 的魅力 的 3 期文章用实际例子演示了如何着手构建 Nokia N800 应用程序:使用摄像机功能创建 Webcam。本文是第 3 期,也是最后一期。本文将编写一个自动照片上传例程,用于上传所拍照片。
首先,让我们快速回顾一下。在这个分三部分的系列的 第 1 期 中,演示了 Nokia N800 Linux® 的内部结构,列出了它的 技术规范和物理参数,并阐述了如何设置和测试构建环境。在 第 2 期 的末尾,展示了一个程序,只要用户按下一个按钮,它就会将一幅图像压缩为 JPEG 文件,并将其保存在内存中。
现在,在第 3 期也是最后一期文章中,您将会看到如何将这些 JPEG 文件自动上传到远程站点。
上传文件比我最初所希望的稍微困难一些。N800 没有提供很多文件上传和下载工具(尽管它提供了 curl
)。无论如何,应该避免将文件保存在本地。
此方法从应用程序直接使用 libcurl
,而不是在命令行运行 curl
。与 libjpeg
一样,Libcurl
用于处理 stdio FILE 对象,而不是内存缓冲区。
幸运的是,通过扩展 GNU C 库,可以改变这种现状。 fmemopen()
函数提供了一个 stdio FILE * 对象,该对象表示内存中的一个缓冲区。通过调用 fmemopen
取代 test.jpg 的 open
,问题就解决一半了:
本文转自:IBM developerWorks 中国