Pergunta

Estou criando uma aplicação em java que será a parte de um aplicativo externo. Meu aplicativo contém um visor que mostra alguns polígonos e coisas assim. O aplicativo externo precisa para obter a imagem do visor em formato gif. Para que ele chama um método em uma interface (implementado pelo meu aplicativo) e meu aplicativo retorna a imagem. As necessidades de aplicativos externos para armazenar a imagem no banco de dados (ou algo relacionado a ele que eu não precisa se preocupar com).

A minha pergunta é: - Qual deve ser o tipo de recipiente de dados da imagem quando a minha candidatura enviá-lo para o aplicativo externo? Quero dizer o que deve ser o tipo de retorno do método? Atualmente minha classe codificador gif retorna uma matriz de bytes. Existe alguma outra opção 'melhor'?

Foi útil?

Solução

A matriz de bytes pode ser apropriado se você espera que os GIFs para ser pequeno, mas você pode considerar o uso de um OutputStream para que possa transmitir os bits de forma mais eficiente.

Mesmo que hoje você só retornar um ByteArrayOutputStream totalmente povoada, isso permitiria que você a mudar a sua implementação no futuro sem afetar código cilent.

Outras dicas

Um tipo de retorno mais intuitivo pode ser java.awt.Image.

Aqui estão alguns exemplos: http://www.google.com/codesearch? q = java + gif + imagem & hl = en & btnG = Pesquisa + Código

Se a sua 'aplicação' é realmente chamar um método Java, então ele deve compreender tipos de retorno Java e você deve retornar java.awt.image.

Se você está fazendo isso por meio de algum tipo de procedimento remoto que não consegue entender tipos de Java eu ??gostaria de voltar uma matriz de bytes e deixar a decodificação aplicativo recebê-lo.

Eu criar dois métodos:

  1. Primeiro método cria a imagem e retorna um java.awt.Image. Aqui você pode colocar a parte de desenho do seu método.
  2. O segundo método cria uma representação GIF do java.awt.Image como solicitado pela aplicação externa. Ele deve retornar OutputStream como já foi sugerido.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top