图像组件允许开箱即用的自由比例裁剪。我有点困惑为什么没有纵横比选项(保持高度和宽度相互限制),这对我们来说会更好。这是可以启用的现有功能,还是 Java 中的自定义任务?
我正在使用 CQ 5.4。
图像组件允许开箱即用的自由比例裁剪。我有点困惑为什么没有纵横比选项(保持高度和宽度相互限制),这对我们来说会更好。这是可以启用的现有功能,还是 Java 中的自定义任务?
我正在使用 CQ 5.4。
这是自 5.4(至少)以来的 OOTB,虽然没有很好的文档记录。像这样设置您的智能图像小部件:
<image-16x10
jcr:primaryType="cq:Widget"
allowFileReference="{Boolean}true"
cropParameter="./image-16x10/imageCrop"
fileReferenceParameter="fileReference"
name="./image-16x10/file"
requestSuffix=".img.png"
rotateParameter=""
title="16x10"
xtype="html5smartimage">
<cropConfig
jcr:primaryType="nt:unstructured">
<aspectRatios
jcr:primaryType="nt:unstructured">
<aspectRatio-16x10
jcr:primaryType="nt:unstructured"
text="16x10"
value="16,10"/>
</aspectRatios>
</cropConfig>
</image-16x10>
cropConfig
节点结构是您感兴趣的内容。 text="16x:10" 将出现在 Crop 下拉列表中,value="16,10" 是该工具的实际固定 Crop 大小。您可以为每个html5smartimage
小部件添加任意数量的预定义作物。
image-16x10
和名称不是必需的aspectRatio-16x10
,但不是有助于配置可维护性的有用约定。如果您允许多个 aspectRatios,那么image-16x10
命名可能没有多大意义,但为您的 aspectRatio 定义节点提供语义命名并不是一个坏主意.
那将是一个自定义 JavaScript 小部件:您使用的那个(智能图像)没有纵横比功能(或者只是我从未见过),即使在 5.6 中也是如此。
您可以扩展现有的小部件,并使用 Javascript 自行提供此功能 - 这不是微不足道的,但也不是火箭科学 - 请参阅智能图像的源代码以了解它如何扩展智能面板,然后将自身注册到框架。
如果您想生成具有不同纵横比的图像,请尝试此...
http://experience-aem.blogspot.com/2013/09/cq-image-custom-aspect-ratios-crop.html
裁剪参数保存在不同的属性中,而不是 html5smartimage 小部件的“cropParameter”