My favorites | 中文(简体) | Sign in

Image 类

Image 类的实例代表可以对其应用多个转换的单个图像。实例上的方法设置转换,这些转换在调用 execute_transforms() 方法时一次性全部执行。

Imagegoogle.appengine.api.images 模块提供。

简介

Image 类用于封装图像信息和该图像的转换。

在 Image 对象上调用了一个或多个转换后,您可以用 execute_transforms() 方法执行转换。

注意:每个转换都以请求的顺序应用,并且针对每个图像的每次 execute_transforms() 调用只能调用一次。

构造函数

class Image(image_data)

要转换的图像。

参数:

image_data
字节字符串格式的图像数据 (str)。可以采用 JPEG、PNG、GIF(包括动画)、BMP、TIFF 或 ICO 格式对图像数据进行编码。

实例方法

Image 实例有以下方法:

resize(width=0, height=0)

缩放图像,缩小或放大到指定宽度和高度。

参数:

width
所需的宽度,以像素数量表示。必须为 intlong
height
所需的长度,以像素数量表示。必须为 intlong
crop(left_x, top_y, right_x, bottom_y)

将图像裁剪到指定边界框。方法以相同的格式返回转换的图像。

将边界框的左侧、顶部、右侧和底部指定为成比例的距离。边界框的坐标被确定为 left_x * widthtop_y * heightright_x * widthbottom_y * height。这可让您指定与图像的最终宽度和高度无关的边界框,图像的最终宽度和高度可能与缩放操作同时更改。

参数:

left_x
边界框的左边界,采用指定为 float 值从 0.0 到 1.0(包括 0.0 和 1.0)的图像宽度的比例。
top_y
边界框的上边界,采用指定为 float 值从 0.0 到 1.0(包括 0.0 和 1.0)的图像高度的比例。
right_x
边界框的右边界,采用指定为 float 值从 0.0 到 1.0(包括 0.0 和 1.0)的图像宽度的比例。
bottom_y
边界框的下边界,采用指定为 float 值从 0.0 到 1.0(包括 0.0 和 1.0)的图像高度的比例。
rotate(degrees)

旋转图像。旋转量必须是 90 度的倍数。

旋转沿顺时针方向执行。旋转 90 度会使图像的上边缘成为右边缘。

参数:

degrees
旋转图像的量,采用度数的形式,是 90 度的倍数。必须为 intlong
horizontal_flip()

水平翻转图像。左边缘变成右边缘,或者反之。

vertical_flip()

垂直翻转图像。上边缘变成下边缘,或者反之。

im_feeling_lucky()

根据改善照片的算法调整图像的对比度和颜色级别。这与 Google Picasa 的 [手气不错] 功能类似。方法以相同的格式返回转换的图像。

注意:当在 SDK 中本地使用 im_feeling_lucky() 方法时,该方法是 no-op,因为 PIL 上没有等效方法。

execute_transforms(output_encoding=images.PNG)

通过以上方法执行 Image 实例的所有转换集并返回结果。

参数:

output_encoding
转换的图像所需的格式。可以是 images.PNGimages.JPEG 格式。默认为 images.PNG

返回值是结果图像,形式是以请求的格式编码的字节字符串。