使用AppEngine创建和提供图像

时间:2012-01-31 11:51:32

标签: image google-app-engine

在Google AppEngine中,我想将boolean []转换为图像然后提供图像。我希望将boolean []转换为黑白像素。我可以看到AppEngine提供

import com.google.appengine.api.images.Image;
import com.google.appengine.api.images.ImagesService;
import com.google.appengine.api.images.ImagesServiceFactory;

// ...
byte[] imageData;  // ...   
ImagesService imagesService = ImagesServiceFactory.getImagesService();    
Image image = ImagesServiceFactory.makeImage(imageData);

但我不知道byte[] imageData的格式应该是什么,即如何将boolean[]转换为byte[]

一旦我有这个图像,客户怎么能得到它?

1 个答案:

答案 0 :(得分:2)

Image Service API接受任何支持的图像文件格式的数据。根据{{​​3}},这些格式包括“JPEG,PNG,WEBP,GIF(包括动画GIF),BMP,TIFF和ICO”。 Image服务不提供从头创建新图像数据的方法。但是您可以使用图形库以一种可接受的数据格式生成图像,然后使用该服务将其转换为另一种格式,或者对其进行转换。当然,根据图形库,您可以直接从库中获取最终图像,而不是使用该服务。

要提供图像,只需为您正在使用的数据格式设置适当的Content-Type标头,然后将图像数据的字节写入响应的输出流:

// byte[] pngData = ...
resp.addHeader("Content-Type", "image/png");
resp.getOutputStream().write(pngData);

如果您想尝试在没有库的情况下生成图像数据,this page可能是最简单的。您可以使用Images服务将其转换为PNG。