所有App Engine图像的列表service get_serving_url()URI选项

为了回应另外一个问题 ,一位评论者提到了一个未公开的URI选项,我不知道用App Engine图像服务水平/垂直翻转图像。

文档提到了几个基本的select:

  • = s0 – 全尺寸
  • = s640 – 最长的640px长
  • = s640-c – 640px正方形

如果有人能够提供更多的select,他们知道在这里作为事实上的文件,那将是非常好的select。

在阅读一些随机post和手动做一些调查研究之间,我把下面的列表放在一起。 请将其他知识放在其他答案或评论中,我可以把它整合在这里。

用法示例

通过将string添加到基于App Engine基于blob的图像URL的末尾,可以实现各种图像转换。 可以通过用连字符分隔选项,例如:

http://[image-url]=s200-fh-p-b10-c0xFFFF0000 

要么:

 http://[image-url]=s200-r90-cc-c0xFF00FF00-fSoften=1,20,0: 

…具有以下效果(文档如下):

作为一个很棒的例子,下面是一个GIFanimation,缩小了大小,

…然后我们可以转换成一个额外的参数MP4video: 点击查看MP4版本


尺寸/作物

  • s640 – 生成最大尺寸的图像640像素
  • s0 – 原始大小的图像
  • w100 – 生成宽度为100像素的图像
  • h100 – 生成高100像素的图像
  • (没有价值) – 延伸图像,以适应尺寸
  • c – 提供尺寸的作物图像
  • n – 与c相同,但来自中心的作物
  • 聪明的方形作物,试图面对面
  • pp – 交替智能方形作物,不切断面孔(?)
  • cc – 生成循环裁剪的图像
  • ci – 裁剪到最小的:宽度,高度或指定的= s参数
  • nu – 不升级。 禁用调整图像大于其原始分辨率。

PAN和ZOOM

  • x,y,z: – 平移和缩放平铺的图像。 这些对没有影响的图像没有影响,或者没有某种forms的授权参数(请参阅googleartproject.com)。

回转

  • fv – 垂直翻转
  • fh – 水平翻转
  • r {90,180,270} – 顺时针旋转图像90,180或270度

图像格式

  • rj – 强制生成的图像为JPG
  • rp – 强制产生的图像是PNG
  • rw – 强制产生的图像是WebP
  • rg – 强制产生的图像是GIF

  • v {0,1,2,3} – 将图像设置为不同的格式选项 (适用于JPG和WebP)

强制PNG,WebP和GIF输出可以与圆形作物结合使用以获得透明背景。 强制JPG可以结合边框颜色来填充透明图像的背景。

animationGIF

  • rh – 从input图像生成一个MP4
  • k – 杀死animation(生成静态图像)

MISC。

  • b10 – 为图片添加一个10px的边框
  • c0xAARRGGBB – 设置边框颜色,例如。 = c0xffff0000红色
  • d – 添加标题以导致浏览器下载
  • e7 – 响应7天设置caching控制最大年龄标头
  • l100 – 将JPEG质量设置为100%(1-100)
  • h – 响应包含图像的HTML页面
  • g – 用Google的pan / zoom使用的XML响应

filter

  • fSoften = 1,100,0: – 其中100可以从0到100模糊图像
  • fVignette = 1,100,1.4,0,000000其中100控制渐变的大小,000000是边框阴影颜色的RRGGBB
  • 无论提供的值如何, fInvert = 0,1都会颠倒图像
  • 无论提供的值如何, fbw = 0,1都会使图像变成黑白色

未知参数

这些参数已被使用,但其效果未知: no,nd,mv

注意事项

某些选项(如JPEG质量= 1)似乎不会生成新的图像。 如果更改其他选项(大小等)并更改l值,则质量更改应可见。 有些选项也不能很好地协同工作。 这一切都是由Google无证的,可能有很好的理由。

而且,依靠这些永远存在的选项可能不是一个好主意。 Google可能随时将其中的大部分移除,而无需事先通知。

详细的v选项调查

我是如何发现的

我真的无意中发现了v选项!

有一天,当我调查图像响应标题时,我发现一个属性etag的值设置为v1 。 由于我还没有看到任何v选项,我只是试图将其添加到图像url,它的工作! 尽pipe标题属性的值可能与v选项无关,但它帮助我意外地发现它。

调查效果如何工作

首先,我注意到,设置v0而不是设置v导致相同的响应,这表明v0返回没有v选项的原始图像(就像在s选项上使用s0将返回原始大小)。

然后,我注意到,设置v1v2v3逐渐返回一个内容较小(重量)的图像,并在视觉上变得更差。 有趣的是,设置v4v5等并没有继续优化它。

调查效果是什么

有一天,我在另一个图像上testing了相同的参数,发现什么都没有发生。 这很有趣:一个选项适用于图像,不适用于另一个,所以我开始testing图像之间的差异。 回顾参数列表,它在我看来可能是图像types,事实上也是! 我已经尝试了v选项的第一个图像types是JPEG,第二个是PNG。 所以,我可以通过设置第二个rjv3来重现相同的效果!

因此,我search了关于JPEGtypes的互联网,有趣的是我发现了一些来源(可以在这里和这里看到)解释了3种types的JPEG:基线标准,基线优化和渐进,完全符合v选项!

调查效果何时起作用

我在其他图像types上尝试了相同的v选项,发现WebP也支持相同types的自定义types,也在v0v0之间的相同范围内逐步优化重量和质量的图像(但质量比JPEG小得多) v3 。 不幸的是,我还没有find任何不同的WebPtypes的来源。

另外,它在GIF上使用时不会改变任何东西,但是,作为PNGtypes,你也可以将它的选项与rjv3结合起来,但是你当然会失去GIFanimation和质量。

尽pipe让我告诉你,但我不认为,除非你在Google,否则这个文档是面向公众的。

Developers.google.com充满了东西,但并不总是全面/易于查找/理解。 在Googlebuild立一个面向公众的工具之前,我们必须与我们一起工作。