2017-07-03 73 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