我想要检索高度和宽度在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