用于在Google App Engine中显示图像的Java代码

时间:2011-09-26 11:59:42

标签: java image google-app-engine

我在GAE的blobstore中有一张图片。我需要检索它并进行一些转换,最后在我的jsp页面中显示它。

目前我用过,

BlobKey blobKey = new BlobKey(req.getParameter("blob-key"));
blobstoreService.serve(blobKey, res);

这显示了图片,但我想将其作为“图片”类型检索并使用下面的代码调整大小

  ImagesService imagesService = ImagesServiceFactory.getImagesService();
  Image oldImage = ImagesServiceFactory.makeImageFromBlob(blobKey);
  Transform resize = ImagesServiceFactory.makeResize(200, 300);
  Image newImage = imagesService.applyTransform(resize, oldImage);
  byte[] newImageData = newImage.getImageData();

如何在jsp页面中显示我的'newImage'?如果我能看到一个示例代码,那将非常有用。我还想知道是否有任何方法可以获得我目前在blobviewer中拥有的图像的blob-key。

1 个答案:

答案 0 :(得分:2)

您不应该在JSP页面的请求中处理图像。 你必须采取两个步骤:

1。 呈现包含图像标记的JSP页面,如

<img src="mydomain.com/getImage?blob-key=123435"/>

2。 有一个单独的servelt映射到mydomain.com/getImage,它输出具有给定id的图像。

因此,您上面提到的所有代码都将放在提供映像的servlet中,而不是JSP交付代码中。然后可以使用HTTPResponses OutputStream传递图像。并且不要忘记为响应设置正确的内容类型和长度。