如何在 Magnolia CMS 中获取图像尺寸
How to get image dimensions in Magnolia CMS
我有一个绝对定位的图像,我需要在其父容器上设置高度,但现在我在 magnolia API 中找不到允许我获取 [ 的宽度或高度的方法=16=].
有没有办法仅使用本机 API 在 Magnolia CMS 中获取 Asset/Item 的图像尺寸(高度、宽度)?
如果没有,你会怎么做?
我会这样写
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 and/or 来源(以及相关 类)。
根据您的建议,我已经做了类似的事情。我正在使用 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());
我有一个绝对定位的图像,我需要在其父容器上设置高度,但现在我在 magnolia API 中找不到允许我获取 [ 的宽度或高度的方法=16=].
有没有办法仅使用本机 API 在 Magnolia CMS 中获取 Asset/Item 的图像尺寸(高度、宽度)?
如果没有,你会怎么做?
我会这样写
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 and/or 来源(以及相关 类)。
根据您的建议,我已经做了类似的事情。我正在使用 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());