2

图像组件允许开箱即用的自由比例裁剪。我有点困惑为什么没有纵横比选项(保持高度和宽度相互限制),这对我们来说会更好。这是可以启用的现有功能,还是 Java 中的自定义任务?

我正在使用 CQ 5.4。

4

3 回答 3

3

这是自 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 定义节点提供语义命名并不是一个坏主意.

于 2013-03-08T14:47:43.370 回答
0

那将是一个自定义 JavaScript 小部件:您使用的那个(智能图像)没有纵横比功能(或者只是我从未见过),即使在 5.6 中也是如此。

您可以扩展现有的小部件,并使用 Javascript 自行提供此功能 - 这不是微不足道的,但也不是火箭科学 - 请参阅智能图像的源代码以了解它如何扩展智能面板,然后将自身注册到框架。

于 2013-02-27T21:34:14.207 回答
0

如果您想生成具有不同纵横比的图像,请尝试此...

http://experience-aem.blogspot.com/2013/09/cq-image-custom-aspect-ratios-crop.html

裁剪参数保存在不同的属性中,而不是 html5smartimage 小部件的“cropParameter”

于 2013-09-24T18:23:45.023 回答