質問
外部アプリケーションの一部となるjavaでアプリケーションを作成しています。私のアプリケーションには、いくつかのポリゴンなどを表示するビューポートが含まれています。外部アプリケーションは、gif形式でビューポートの画像を取得する必要があります。そのために、インターフェイス(アプリケーションで実装)のメソッドを呼び出し、アプリケーションが画像を返します。外部アプリケーションは画像をデータベースに保存する必要があります(またはそれに関連するもので、心配する必要はありません)。
私の質問は次のとおりです。-アプリケーションが外部アプリケーションに画像を送信するとき、画像のデータコンテナタイプは何ですか?メソッドの戻り値の型はどうあるべきかということです。 現在、私のgifエンコーダクラスはバイト配列を返します。他の「より良い」オプションはありますか?
解決
GIFが小さいと予想される場合はバイト配列が適切かもしれませんが、ビットをより効率的にストリーミングできるように OutputStream
の使用を検討するかもしれません。
今日、完全に読み込まれた ByteArrayOutputStream
を返す場合でも、これにより、サイレントコードに影響を与えずに実装を変更できます。
他のヒント
より直感的な戻り値のタイプはjava.awt.Imageです。
以下に例を示します。 http://www.google.com/codesearch? q = java + gif + image& hl = en& btnG = Search + Code
「アプリケーション」が実際にJavaメソッドを呼び出している場合、Javaの戻り値の型を理解し、java.awt.imageを返す必要があります。
Javaの型を理解できない何らかの種類のリモートプロシージャを使用してこれを実行している場合、バイト配列を返し、受信側アプリにデコードさせます。
2つのメソッドを作成します:
- 最初のメソッドは画像を作成し、
java.awt.Image
を返します。ここで、メソッドの描画部分を配置できます。 - 2番目のメソッドは、外部アプリケーションからの要求に応じて、
java.awt.Image
のgif表現を作成します。既に提案されているように、OutputStream
を返す必要があります。