2012-09-25 6 views
0

내 목표는 hessian 프로토콜을 통해 클라이언트의 폴더에서 tomcat6 서버로 이미지 (.jpg 또는 .png)를 업로드하는 것입니다. 그리고 서버에서 opencv를 사용하여 이미지 처리를 한 다음 이미지를 다시 클라이언트로 반환하십시오.이미지 클라이언트 폴더에서 tomcat 서버로 hessian 프로토콜을 사용하여 이동

질문 1. 다음 전송 단계가 정확합니까?


  • -->test.jpgBufferedImage에 (main.java) 클래스 client.java에서
    -->openCV를 사용하는 서버에 매트 BufferedImage 또는 Iplimage 변환 변환 클라이언트의 폴더에 test.jpg 이미지를 넣어.

나는 Simple Messaging Example using Hessian 에서 안녕하세요 세계 샘플을 설정하고, Hessian with large binary data 및 기타 웹 사이트에서 검색,하지만 여전히 그것을 사용하는 방법을 잘 모릅니다있다!

질문 2. 관련된 Java 샘플 코드가 있습니까? 당신은 아마 클라이언트의 바이트 스트림으로 이미지를 처리 ​​할 같은

(나는 ubuntu12 + netbeans7.2을 사용하고 있습니다)

답변

0

대신 BufferedImage를 사용하는 소리. 처리 후에는 원하는대로 할 수 있지만 파일 내용을 보내면 hessian을 사용하는 것이 더 쉬워집니다.

Hessian은 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()를 호출하는 래퍼를 만들 수 있습니다.

+0

필자는 FileInputStream 및 FileOutputStream을 사용했으며 이미지를 클라이언트에서 서버로 업로드 할 때 작동하지만 반대로 처리하지 않았습니다. 그래서 Scott이 제공 한 메소드가 서버에서 클라이언트로 이미지를 다운로드 할 때 작동하는지 궁금합니다. 또는이를 수행 할 또 다른 방법이 있습니다. thx 톤! –

관련 문제