不幸的是,我不能给这篇文章加上正确的“技术”标签,因为它并不存在,我也没有1500的声誉来创建它。
我们正在使用一种名为"Liquid Pixels“的云服务来渲染图像上的一些内容。
假设我们有一个图像链,它当前正在给定的JPEG图像上渲染ribbon。这个链条工作得很好。然后我调整了链以处理动画gif图像,因此我将接收器格式更改为gif (sink=formatgif)。这也运行得很好。
现在我想将这两种情况合并到一个链中,因为唯一的区别是接收器命令。我们的计划是检查源图像的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’)]但是由于某些原因,我不能访问format属性。我习惯于获取一些参数,比如“testImage.width”或“testImage.height”,但是由于某些原因,我不能访问format=的“GIF”属性。我猜这是因为宽度和高度在元数据映射中处于不同的层次结构级别。
我希望你们能帮助我。
发布于 2017-08-10 21:47:55
在渲染过程中,图像实际上没有“格式”。只有文件才有格式。在处理过程中,图像只是作为光栅或矢量数据存储在内存中;只有当您接收时,它才会变成任何格式的文件。此外,LiquiFire OS在从源获取图像时使用图像数据来确定原始格式,而不是图像名称本身。
如果您需要LiquiFire图像链中的操作来对源图像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’)]https://stackoverflow.com/questions/44888796
复制相似问题