我的目标是上传图片( .jpg
或.png
从客户端的文件夹)通过Hessian协议的Tomcat6服务器。 而做使用服务器上的OpenCV的图像处理,然后返回到图像回客户端。
问题1。 在下面的步骤transfering正确?
- 把
test.jpg
图像上客户端的文件夹
-->
转换test.jpg
在client.java
( main.java
)类BufferedImage
-->
转换BufferedImage
到垫或Iplimage
服务器使用openCV
。
我已经设置从一个Hello World样本使用Hessian简单消息实例 ,并从搜索黑森州与大型二进制数据和其他网站,但仍然不知道如何使用它!
问题2。 是否有相关的Java代码示例?
(我用ubuntu12 + netbeans7.2)
这听起来像你可能要处理的图像作为客户端上的字节流,而不是使用的BufferedImage。 处理后,你可以做任何你想要的,但它会更容易使用麻袋,如果你只是发送文件内容。
黑森州理解的InputStream的类型。 所以,你的最小的方法调用API可以看起来像
InputStream convert(InputStream upload);
该客户端将打开一个输入流,以原来的文件,直接发送输入流:
InputStream is = new FileInputStream("test.jpg");
InputStream resultIs = hessianProxy.convert(is);
.... // save the result
有点谨慎对待的是,粗麻布响应连接仍然会现场,直到你读完输入流,所以你需要马上看它。 (这不是缓冲,这是一个原因,它可能是有效的。)
在服务器上,你需要从输入流(再次,立即)阅读。 而作为一个结果,返回的InputStream,从您的转换后的图像内容如下:
InputStream convert(InputStream is) {
... // read from 'is' to your internal data
InputStream result = ... // process
return result;
}
你会想,以确保结果的输入流在文件末尾自动关闭任何东西。 您可能希望创建一个包装调用close()。