Frage

ich eine Anwendung in Java bin zu schaffen, die der Teil einer externen Anwendung sein werden. Meine Anwendung enthält ein Ansichtsfenster, die einige Polygone und Sachen wie das zeigt. Die externe Anwendung muss das Bild des Ansichtsfensters im GIF-Format bekommen. Für dass sie ein Verfahren in einer Schnittstelle aufrufen (durch meine Anwendung implementiert) und meine Anwendung gibt das Bild. Die externe Anwendung muss das Bild in der Datenbank speichern (oder etwas mit sich bringen, die ich nicht brauchen, um sich Sorgen zu machen).

Meine Frage ist: - Was die Datencontainer Typ des Bildes sein sollte, wenn meine Bewerbung an die externe Anwendung senden? Ich meine, was sollte der Rückgabetyp der Methode sein? Derzeit gibt meine GIF-Encoder-Klasse einen Byte-Array. Gibt es eine andere 'besser' Option?

War es hilfreich?

Lösung

Ein Byte-Array geeignet sein könnte, wenn man die GIFs erwarten, klein zu sein, aber Sie könnten mit einem OutputStream betrachten, so dass Sie Bits effizienten streamen können.

Auch wenn man heute nur einen voll besiedelten ByteArrayOutputStream zurückkehrt, würde dies ermöglicht es Ihnen, Ihre Implementierung in Zukunft zu ändern, ohne cilent Code zu beeinflussen.

Andere Tipps

Eine intuitivere Rückgabetyp sein könnte java.awt.Image.

Hier sind einige Beispiele: http://www.google.com/codesearch? q = java + gif + Bild & hl = en & BTNG = Suchen +-Code

Wenn Sie Ihre ‚Anwendung‘ ist eigentlich eine Java-Methode aufgerufen wird, dann sollte es Java-Rückgabetypen verstehen und Sie sollten java.awt.image zurück.

Wenn Sie dies durch eine Art von Remote Procedure tun, die Java-Typen nicht verstehen kann, ich würde einen Byte-Array zurückgeben und lassen Sie den Empfang App es dekodieren.

Ich würde erstellen zwei Methoden:

  1. Erste Methode erstellt das Bild und gibt einen java.awt.Image. Hier können Sie die Zeichnung Teil Ihrer Methode setzen.
  2. Die zweite Methode erstellt eine GIF-Darstellung der java.awt.Image wie durch die externe Anwendung angefordert. Es sollte OutputStream zurück, wie bereits vorgeschlagen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top