Pregunta

Estoy creando una aplicación en Java que será parte de una aplicación externa. Mi aplicación contiene una ventana gráfica que muestra algunos polígonos y cosas así. La aplicación externa necesita obtener la imagen de la ventana gráfica en formato gif. Para eso llama a un método en una interfaz (implementado por mi aplicación) y mi aplicación devuelve la imagen. La aplicación externa necesita almacenar la imagen en la base de datos (o algo relacionado con ella que no tengo que preocuparme).

Mi pregunta es: - ¿Cuál debería ser el tipo de contenedor de datos de la imagen cuando mi aplicación la envíe a la aplicación externa? Quiero decir, ¿cuál debería ser el tipo de retorno del método? Actualmente mi clase de codificador GIF devuelve una matriz de bytes. ¿Hay alguna otra opción 'mejor'?

¿Fue útil?

Solución

Una matriz de bytes podría ser apropiada si espera que los GIF sean pequeños, pero podría considerar usar un OutputStream para poder transmitir bits de manera más eficiente.

Incluso si hoy acaba de devolver un ByteArrayOutputStream completamente completado, esto le permitiría cambiar su implementación en el futuro sin afectar el código central.

Otros consejos

Un tipo de retorno más intuitivo podría ser java.awt.Image.

Aquí hay algunos ejemplos: http://www.google.com/codesearch? q = java + gif + imagen & amp; hl = en & amp; btnG = Buscar + Código

Si su 'aplicación' en realidad está llamando a un método Java, entonces debe comprender los tipos de retorno de Java y debe devolver java.awt.image.

Si está haciendo esto a través de algún tipo de procedimiento remoto que no puede entender los tipos de Java, devolvería una matriz de bytes y dejaría que la aplicación receptora lo decodifique.

Crearía dos métodos:

  1. El primer método crea la imagen y devuelve un java.awt.Image . Aquí puede poner la parte de dibujo de su método.
  2. El segundo método crea una representación gif del java.awt.Image según lo solicitado por la aplicación externa. Debería devolver OutputStream como ya se sugirió.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top