0

私の目標は、ヘシアンプロトコルを介してクライアントのフォルダからtomcat6サーバーに画像(.jpgまたは)をアップロードすることです。.pngそして、サーバー上でopencvを使用して画像処理を行い、画像をクライアントに戻します。

質問1。次の転送手順は正しいですか?

  • test.jpgクライアントのフォルダに画像を配置し
    -->test.jpgin client.javamain.java)クラスをBufferedImage
    -->変換しBufferedImageてマットに変換するかIplimage、サーバーで使用しopenCVます。

Hessianを使用してSimpleMessagingExample からhelloworldサンプルを設定し、大きなバイナリデータや他のWebサイトでHessian から検索しましたが、それでも使用方法がわかりません。

質問2。関連するJavaサンプルコードはありますか?

(私はubuntu12 + netbeans7.2を使用しています)

4

1 に答える 1

0

BufferedImageを使用するのではなく、クライアント上で画像をバイトストリームとして扱いたいと思われるかもしれません。処理後は何でもできますが、ファイルの内容を送信するだけでヘシアンが使いやすくなります。

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()を呼び出すラッパーを作成することをお勧めします。

于 2012-10-01T02:55:44.463 に答える