所有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
将返回原始大小)。
然后,我注意到,设置v1
, v2
和v3
逐渐返回一个内容较小(重量)的图像,并在视觉上变得更差。 有趣的是,设置v4
, v5
等并没有继续优化它。
调查效果是什么
有一天,我在另一个图像上testing了相同的参数,发现什么都没有发生。 这很有趣:一个选项适用于图像,不适用于另一个,所以我开始testing图像之间的差异。 回顾参数列表,它在我看来可能是图像types,事实上也是! 我已经尝试了v
选项的第一个图像types是JPEG,第二个是PNG。 所以,我可以通过设置第二个rj
和v3
来重现相同的效果!
因此,我search了关于JPEGtypes的互联网,有趣的是我发现了一些来源(可以在这里和这里看到)解释了3种types的JPEG:基线标准,基线优化和渐进,完全符合v
选项!
调查效果何时起作用
我在其他图像types上尝试了相同的v
选项,发现WebP也支持相同types的自定义types,也在v0
和v0
之间的相同范围内逐步优化重量和质量的图像(但质量比JPEG小得多) v3
。 不幸的是,我还没有find任何不同的WebPtypes的来源。
另外,它在GIF上使用时不会改变任何东西,但是,作为PNGtypes,你也可以将它的选项与rj
和v3
结合起来,但是你当然会失去GIFanimation和质量。
尽pipe让我告诉你,但我不认为,除非你在Google,否则这个文档是面向公众的。
Developers.google.com充满了东西,但并不总是全面/易于查找/理解。 在Googlebuild立一个面向公众的工具之前,我们必须与我们一起工作。