2017-07-03 68 views
0

不幸的是,我不能用正确的“技术”标记这篇文章,因为它不存在,我没有1500的声望来创建它。液体像素检查源图像MIME类型

我们正在使用名为“液体像素”的云服务在我们的图像上渲染一些东西。

可以说我们有一个图像链,当前正在给定的JPEG图像上呈现一个功能区。这条链工作正常。 然后,我调整链条以处理动画gif图像,因此我将sink格式更改为gif(sink = format [gif])。这工作也很好。

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

我将图像渲染为xml以查看元数据图。 enter image description here

我以为我可以这样做。

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”属性。我想这是因为宽度和高度在元数据映射中的不同层次级别上。

我希望你们能帮助我。

回答

0

在渲染过程中,图像实际上并没有“格式”。只有一个文件具有格式。在处理过程中,图像只是在内存中作为光栅或矢量数据;只有当你下沉它以任何格式成为一个文件。此外,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’)] 
+0

在我检查,如果源文件已超过一帧,因为我们的DAM系统中没有名为.gif原始再现结尾的文件类型结束 – Treibholz