如何将存储在byte []中的图像写入谷歌云存储中的文件?

时间:2013-03-20 12:38:56

标签: google-app-engine google-cloud-storage

我正在尝试使用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存储到google云存储中的jpg文件的位置。我知道如何创建一个txt文件而不是jpg。

有人可以帮我吗?

1 个答案:

答案 0 :(得分: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但是它有很多错误,所以可能会出现一些问题。
  3. 但你仍然可以使用标准的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 [])< / p>

相关问题