如何在Magnolia CMS中获取图像尺寸

时间:2016-06-23 11:34:45

标签: java content-management-system magnolia dam

我有一个绝对定位的图像,其父容器我需要设置一个高度,但现在我找不到一个在magnolia API中允许我获取资产/项目的宽度或高度的方法。

有没有办法只使用原生API获取Magnolia CMS中资产/项目的图像尺寸(高度,宽度)?

如果没有,你会怎么做?

2 个答案:

答案 0 :(得分:4)

我会以某种方式写出来像

import info.magnolia.dam.api.metadata.MagnoliaAssetMetadata;
// ...
if (asset.supports(MagnoliaAssetMetadata.class)) {
  MagnoliaAssetMetadata metadata = asset.getMetadata(MagnoliaAssetMetadata.class);
  long width = metadata.getWidth();
  long height = metadata.getHeight();
  // do whatever you need with the image dimensions
} else {
  // handle non-image asset
}

有关详细信息,请参阅MagnoliaAssetMetadata javadoc和/或来源(及相关类)。

答案 1 :(得分:-1)

根据您的建议,我已经做了类似的事情。我正在使用 damTemplatingFunctions 使用 JCR id 获取资产。

Node node = nodes.nextNode();
String imageJcrId = node.getProperty("image").getValue().getString();
Asset asset = damTemplatingFunctions.getAsset(imageJcrId);
MagnoliaAssetMetadata metadata1 = asset.getMetadata(MagnoliaAssetMetadata.class);
System.out.println(metadata1.getHeight());
System.out.println(metadata1.getWidth());