61 votes

Comment renvoyer une image PNG de la méthode de service Jersey REST au navigateur

J'ai un serveur Web fonctionnant avec des ressources Jersey REST et je me demande comment obtenir une référence image/png pour la balise img du navigateur ; après avoir soumis un formulaire ou obtenu une réponse Ajax. Le code de traitement d'image pour l'ajout de graphiques fonctionne, il suffit de le renvoyer d'une manière ou d'une autre.

Code:

 @POST
@Path("{fullsize}")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("image/png")
// Would need to replace void
public void getFullImage(@FormDataParam("photo") InputStream imageIS,
                         @FormDataParam("submit") String extra) {

      BufferedImage image = ImageIO.read(imageIS);

      // .... image processing
      //.... image processing

      return ImageIO.  ..  ?

}

À votre santé

8voto

comeGetSome Points 370

en ce qui concerne la réponse de @Perception, il est vrai qu'il consomme beaucoup de mémoire lorsque vous travaillez avec des tableaux d'octets, mais vous pouvez également simplement réécrire dans le flux de sortie

 @Path("/picture")
public class ProfilePicture {
  @GET
  @Path("/thumbnail")
  @Produces("image/png")
  public StreamingOutput getThumbNail() {
    return new StreamingOutput() {
      @Override
      public void write(OutputStream os) throws IOException, WebApplicationException {
        //... read your stream and write into os
      }
    };
  }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X