2

我正在尝试使用 Google Image 服务,并且正在尝试以下示例来调整图像大小。

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

// ...
        byte[] oldImageData;  // ...

        ImagesService imagesService = ImagesServiceFactory.getImagesService();

        Image oldImage = ImagesServiceFactory.makeImage(oldImageData);
        Transform resize = ImagesServiceFactory.makeResize(200, 300);

        Image newImage = imagesService.applyTransform(resize, oldImage);

        byte[] newImageData = newImage.getImageData();

我被困在需要将 byte[] newImageData 存储到谷歌云存储中的 jpg 文件的地方。我知道如何创建 txt 文件,但不知道如何创建 jpg。

有人可以帮我吗?

4

1 回答 1

1

据我所知,GAE 使用字节进行操作。图像数据(您的 jpg)的源/目标可以是:URL 连接、DataStore BLOB 或 BlobStorage。不要忘记你必须使用纯Java。有几种方法:

  1. 首先尝试使用 Jimi - 它是用于处理图像的纯 Java 库。相当简单。
  2. 还存在该appengine-awt库的 alpha 版本:https ://code.google.com/p/appengine-awt/source/checkout 它允许您使用标准BufferedImage,但其中有很多错误,所以可能有一些问题。

但是您仍然可以使用标准的 GAE Api for Images。有一个 Image 接口,其中嵌套类 Image.Format 指定 JPEG 格式setImageData(byte[] data)。方法对您很有用。

这是关于它的文档:https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/images/Image#setImageData(byte[])

于 2013-03-20T12:56:27.507 回答