Liquid Pixels 检查源图像 mime 类型

Liquid Pixels check source image mime type

不幸的是,我无法用正确的 "technology" 标记这个 post 因为它不存在而且我没有 1500 声望来创建它。

我们正在使用名为 "Liquid Pixels" 的云服务在我们的图像上渲染一些东西。

假设我们有一个图像链,当前正在给定的 JPEG 图像上渲染色带。这条链工作正常。 然后我调整链以处理动画 gif 图像,因此我将接收器格式更改为 gif (sink=format[gif])。那也很好用。

现在我想将这两种情况合并到一个链中,因为唯一的区别是 sink 命令。计划是检查源图像的 MIME 类型,然后呈现 gif 或 jpg 图像。

我将图像渲染为 xml 以查看元数据地图。

我以为我可以这样做。

source=url[https://something.com/1x1_sample.gif],name[testImage]

sink=format[gif],if[('testImage.format' eq 'GIF')]
sink=format[jpg],if[('testImage.format' ne 'GIF’)]

但由于某种原因我无法访问格式属性。我习惯于获取一些参数,如“testImage.width”或“testImage.height”,但由于某些原因我无法访问格式=“GIF”属性。我猜这是因为宽度和高度在元数据映射中处于不同的层次结构级别。

希望大家帮帮我

图像在渲染过程中实际上没有 "format"。只有文件有格式。在处理过程中,图像只是作为光栅或矢量数据存储在内存中;只有当您下沉时,它才会成为任何格式的文件。此外,LiquiFire OS 在从来源获取图像时使用图像数据来确定原始格式,而不是图像名称本身。

如果您需要在 LiquiFire Image Chain 中进行操作以对源图像做出反应 URL,您可以通过应用正则表达式来测试图像名称的最后部分,看看它是 .GIF 还是.gif。如何做到这一点的一个例子:

set=imageURL[https://your.server.com/sample.gif]
source=url[global.imageURL],name[testImage]
regexcase=name[isGif],key[global.imageURL],cases[\.gif$|\.GIF$|\.\w+$],values[yes|yes|no]
sink=format[gif],if[('global.isGif' eq 'yes')]
sink=format[jpg],if[('global.isGif' eq 'no’)]