所有App Engine映像服务列表get_serving_url()URI选项

时间:2014-08-05 21:23:13

标签: image google-app-engine

在回复another question时,一位评论者提到了一个未记录的URI选项,我不知道用App Engine图像服务水平/垂直翻转图像。

The documentation提到了一些基本选项:

  • = s0 - fullsize
  • = s640 - 最长边640px长
  • = s640-c - 640px square

很高兴能够生成一个完整的选项列表,或者如果有人可以提供他们知道的更多选项作为事实上的文档。

4 个答案:

答案 0 :(得分:87)

在阅读一些随机帖子和手动做一些调查研究之间,我把以下列表放在一起。请放弃其他答案或评论中的任何其他知识,我可以将其集成到这里。

用法示例

我们可以通过将字符串添加到App Engine基于blob的图像URL的末尾,然后使用=字符来实现各种图像转换。可以通过用连字符分隔选项来组合选项,例如:

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

或:

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

...具有以下效果(下面的文档):

作为一个令人敬畏的例子,这里是一个动画GIF,缩小尺寸和反转:

...我们可以将其转换为带有一个额外参数的MP4视频:click to see MP4 version


SIZE / CROP

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

PAN AND ZOOM

  • x,y,z: - 平移和缩放平铺图像。这些对于未经处理的图像或没有某种形式的授权参数没有影响(请参阅googleartproject.com)。

ROTATION

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

图像格式

  • rj - 强制生成的图片为JPG
  • rp - 强制生成的图片为PNG
  • rw - 强制生成的图片为WebP
  • rg - 强制生成的图片为GIF

  • v {0,1,2,3} - sets image to a different format option(适用于JPG和WebP)

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

动画GIF

  • rh - 从输入图像生成MP4
  • k - 杀死动画(生成静态图片)

MISC。

  • b10 - 为图片添加10px边框
  • c0xAARRGGBB - 设置边框颜色,例如= c0xffff0000表示红色
  • d - 添加标题以导致浏览器下载
  • e7 - 响应7天设置缓存控制max-age标头
  • l100 - 将JPEG质量设置为100%(1-100)
  • h - 使用包含图片的HTML页面进行回复
  • g - 使用Google平移/缩放所使用的XML进行回复

过滤器

  • 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

注意事项

某些选项(例如= l表示JPEG质量)似乎不会生成新图像。如果更改其他选项(大小等)并更改l值,则应显示质量更改。有些选项也不能很好地协同工作。这一切都没有被Google记录,可能是有充分理由的。

此外,依赖永久存在的任何选项可能不是一个好主意。 Google可以随时删除大部分内容,恕不另行通知。

答案 1 :(得分:18)

我有一天浏览了一些东西,然后我实际上在google的一个页面上找到了一个javascript资产,其中包含英文变量名称及其类型!这是我制作的格式很好的版本:

$("div")
    .mousedown(function(e) {
        console.log(e.target);
        e.stopPropagation();
    });

注意:

  • bool表示只需添加变量
  • int表示变量名称后面的数字
  • string表示变量名称后面的字符串(可能是复杂的)
  • hex表示变量名称
  • 后格式为 0x000000 的十六进制数
  • 变量由连字符( - )
  • 分隔

答案 2 :(得分:8)

详细的v选项调查

我是如何发现的

我无意中发现了v选项!

有一天,在我调查图片响应标头时,我发现了一个属性etag,其值设置为v1。由于我还没有看到任何v选项,我只是尝试将其添加到图片网址并且有效!尽管header属性值可能与v选项无关,但它帮助我意外地找到它。

调查效果如何运作

首先,我注意到设置v0而未设置v会产生相同的响应,这表示v0返回的原始图片没有{{1} }选项(就像在v选项上使用s0一样会返回原始大小。)

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

调查效果

有一天,我在另一张图片上测试了相同的参数,发现什么都没发生。这很有趣:一个适用于图像的选项并不适用于另一个图像,因此我开始测试图像之间的差异。回顾一下参数列表,我发现它可能是图像类型,事实确实如此!第一种图像类型I尝试v5选项是JPEG,第二种是PNG。所以,我可以通过设置vrj的第二个来重现相同的效果!

因此,我在互联网上搜索了JPEG类型,有趣的是我发现了一些来源(正如你可以看到herehere)解释了3种类型的JPEG:Baseline Standard, Baseline Optimized和Progressive,完全符合v3选项中可用的三种变体!

调查效果何时起作用

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

此外,它在GIF上使用时没有任何改变,但是,作为PNG类型,您还可以将其选项与v3rj结合使用,但您会(当然) )失去GIF动画和质量。

答案 3 :(得分:1)

虽然让我告诉你,但我不认为,除非你在谷歌,否则这份文件面向公众:(。

Developers.google.com充满了东西,但并不总是全面/容易找到/理解。在Google构建面向公众的工具之前,我们必须使用我们拥有的工具。