java - 从 JAX-RS servlet 动态创建图像

标签 java image jax-rs dynamic-image-generation

是否可以创建 PNG 图像并将其作为 JAX-RS 资源的一部分直接输出到浏览器?

像这样:

@Path("img/{externalId}")
@Stateless
@Produces({"image/png"})
public class MyImgResource {

  @GET
  public Response (@PathParam("externalId") String externalId) {
    // create image, write to buffered output stream

    return Response.ok().entity(stream).build();
  }
}

这行得通吗?我是否必须处理正确的 header (Content-Type),或者这是由 @Produces 注释完成的?可以将图像输出为 Response 吗?我可以从流构建Response吗?

最佳答案

看看http://jersey.java.net/nonav/documentation/latest/user-guide.html#d4e323 :

 @GET
 @Path("/images/{image}")
 @Produces("image/*")
 public Response getImage(@PathParam("image") String image) {
     File f = new File(image);

     if (!f.exists()) {
         throw new WebApplicationException(404);
     }

     String mt = new MimetypesFileTypeMap().getContentType(f);
     return Response.ok(f, mt).build();
 }

关于java - 从 JAX-RS servlet 动态创建图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5736973/

相关文章:

java - Spring EntityManager.persist 问题

java - 使用日期显示以前的登录

java - Docker 容器中的 Apache Karaf 4 调试

ios - CGImageDestinationCreateWithURL 的问题

Gradle 中的 Java 8 构建错误

c# - 在 c# 中的用户滚动 ListView 中动态加载项目(图像)

html - css/html 新手 : issue with image and border (in css)

java - 用于在 URI 模板 (RFC 6570) 中提取值的独立 Java 实现?

web-services - 如何在没有网络的机器上安装postman?

json - Jersey 的自定义 ExceptionMapper 不适用于无效的 JSON 输入