Question

Je crée une application en Java qui fera partie d'une application externe. Mon application contient une fenêtre qui montre des polygones et des choses comme ça. L’application externe doit obtenir l’image de la fenêtre au format gif. Pour cela, il appelle une méthode dans une interface (implémentée par mon application) et mon application renvoie l'image. L’application externe doit stocker l’image dans une base de données (ou quelque chose qui y est lié et dont je n’ai pas à me soucier).

Ma question est la suivante: - Quel doit être le type de conteneur de données de l'image lorsque mon application l'envoie à l'application externe? Je veux dire quel devrait être le type de retour de la méthode? Actuellement, ma classe d'encodage gif renvoie un tableau d'octets. Existe-t-il une autre "meilleure" option?

Était-ce utile?

La solution

Un tableau d'octets peut être approprié si vous vous attendez à ce que les GIF soient petits, mais vous pouvez envisager d'utiliser un OutputStream afin de pouvoir diffuser des bits plus efficacement.

Même si, aujourd’hui, vous ne renvoyiez qu’un ByteArrayOutputStream entièrement rempli, cela vous permettrait de modifier votre implémentation à l’avenir sans affecter le code cilent.

Autres conseils

Un type de retour plus intuitif pourrait être java.awt.Image.

Voici quelques exemples: http://www.google.com/codesearch? q = java + gif + image & amp; hl = en & amp; btnG = Recherche + Code

Si votre 'application' appelle une méthode Java, elle doit comprendre les types de retour Java et vous devez renvoyer java.awt.image.

Si vous le faites via une procédure distante qui ne comprend pas les types Java, je renverrais un tableau d'octets et laisser l'application destinataire le décodage.

Je créerais deux méthodes:

  1. La première méthode crée l'image et retourne un java.awt.Image . Ici, vous pouvez mettre la partie de dessin de votre méthode.
  2. La deuxième méthode crée une représentation gif du java.awt.Image comme demandé par l'application externe. Il devrait retourner OutputStream comme déjà suggéré.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top