我想要檢索高度和寬度在magnolia 中的圖像後,它被圖像處理器(ImageVariations)縮放/裁剪,但我似乎沒有找到正確的方法。如何獲取ImageRendition大小?
這是一個定義我在東京theme.yaml:
imaging:
class: info.magnolia.templating.imaging.VariationAwareImagingSupport
variations:
"large":
class: info.magnolia.templating.imaging.variation.SimpleResizeVariation
width: 745
[...]
我做的是以下幾點:
在我的模板(FTL)我首先通過取得JCR關鍵寫作
[#assign itemKey = content.backgroundImage!""]
。我使用DamFunctions檢索資產由它的鍵 與
damfn.getAsset(itemKey);
我取的繪製(我理解爲圖像的縮放版本)與
dam.getRendition(asset, renditionName)
我可以從AssetMetaData中讀取寬度和高度,但即使使用Rendition對象,我仍然可以獲得原始資產元數據,而不是預期的縮放元數據。
我做錯了什麼?
編輯:你能看看這張照片嗎?它顯示了我將用來檢索最大寬度和最大高度的路徑。請告訴我可以這樣做。
感謝您的幫助!
感謝您的回答,Jan!但是,我可以簡單地使用渲染的名稱(變體)來找出它的最大寬度,這樣我就可以根據它進行分割並獲得我需要的高度? – Manticore
不知何故,是的。理想情況下,從當前狀態獲取網站,然後使用它獲取當前主題,從主題獲取映像和所有列出的變體。但成像不會將配置變體的列表暴露給外部。你需要做的是,一旦你通過'$ {state.site.theme.name}找到主題名字'獲得該名稱並獲得主題節點(假設你的主題仍然存在於存儲庫中)並從那裏讀取變體。如果您的主題配置在光照模塊中並且位於文件系統中,則很可能會卡住。 – Jan
我編輯了我的答案,並添加了一張圖片,顯示我將使用的路徑。是的,我正在使用YAML Configuration作爲主題。你認爲有一種方法可以使用NodeUtil或其他東西來獲取該節點路徑後面的屬性值嗎?或者說,你的'成像意味着什麼'沒有公佈配置變化的列表'外部'?我看到的另一個路徑是'/modules/site/config/themes/"+siteTheme.getName()+"/imaging/variations'... – Manticore