App Engine 提供了使用专用图像服务来操作图像数据的功能。图像服务可以调整图像大小,旋转、翻转和裁剪图像;可以将多个图像合并为单个图像;可以在多种格式之间转换图像数据。它还能够使用预先定义的算法提高照片质量。API 还提供关于图像的信息,如格式、宽度、高度以及颜色值的直方图。
通过图像服务 Java API,您可以使用服务而不是在应用程序服务器上执行图像处理,从而对图像应用转换。应用程序准备了一个带有要转换图像数据的 Image 对象,以及带有图像转换说明的 Transform 对象。应用程序获得 ImagesService 对象,然后对 Image 对象和 Transform 对象调用其 applyTransform() 方法。该方法返回已转换图像的 Image 对象。
应用程序使用 ImagesServiceFactory 获得 ImagesService、Image 和 Transform 实例。
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();
使用 CompositeTransform 实例可将多个转换组合成单个操作。请参阅图像 API 参考。
图像服务可以调整图像大小,旋转、翻转和裁剪图像,并提高照片的质量。它还可以将多个图像合并为单个图像。
您可在保持纵横比不变的同时缩放图像。

您每次可以旋转图像 90 度。

您可以水平翻转图像。

您可以垂直翻转图像。

您可以使用指定的边框裁剪图像。

“手气不错”变换功能可增强图像的暗度和亮度,并可将颜色和对比度调整到最佳水平。

该服务接受 JPEG、PNG、GIF(包括动画 GIF)、BMP、TIFF 和 ICO 格式的图像数据。
它可以返回 JPEG 和 PNG 格式的转换图像。如果输入格式和输出格式不同,服务将在执行转换之前将输入数据转换为输出格式。
开发服务器使用本地计算机来执行图像服务的功能。
Java 开发服务器具有模拟图像服务的功能。不支持“手气不错”照片增强功能。
每个图像服务请求都会计算在图像操作 API 调用配额内。应用程序可以在单个 API 调用中执行图像的多个事务。
发送到图像服务的数据会计算在发送到(图像)API 的数据配额内。从图像服务接收的数据会计算在从(图像)API 接收的数据配额内。
每个图像转换都会计算在执行的转换配额内。
有关配额的详细信息,请参阅配额,以及管理控制台的“配额详细信息”部分。
除了配额以外,使用图像服务还需遵循以下限制:
| 限制 | 值 |
|---|---|
| 发送到服务的图像的最大数据大小 | 1 兆字节 |
| 从服务接收的图像的最大数据大小 | 1 兆字节 |