1

我正在尝试调整给定 JCR 图像资源的大小并将其存储为新的再现。用例是生成“任意”比例的缩略图。

我想使用com.day.cq.dam.core.process.CreateThumbnailProcess,但这在项目中不可用,我正在努力。

4

2 回答 2

3

我找到了一种非常低级的方法,可以调整由jcrPathToImagetoint targetWidthint targetHeight.

  1. 调整图像大小

    Resource resource = getResourceResolver().getResource(jcrPathToImage);
    Asset asset = resource.adaptTo(Asset.class);
    Layer layer = new Layer(asset.getOriginal().getStream())
    layer.resize(targetWidth, targetHeight);
    
  2. 在 JCR 中创建新演绎版

    提取原始图像的mime类型

    Image image = new Image(resource);
    String mimeType = image.getMimeType();
    

    使用其资产表示存储调整大小的图像。

    ByteArrayOutputStream bout = null;
    ByteArrayInputStream bin = null;
    
    try {
        bout = new ByteArrayOutputStream(2048);
        layer.write(mimeType, 1, bout);
    
        bin = new ByteArrayInputStream(bout.toByteArray());
    
        asset.addRendition(resizedImgName, bin, mimeType);
    
    } finally {
        // close streams ...               
    }
    
于 2013-02-07T10:46:28.850 回答
1

您可以配置 DAM 更新资产工作流程以提供您想要创建的演绎版

http://localhost:4502/etc/workflow/models/dam/update_asset.html

在此工作流模型中选择缩略图创建步骤,然后在该步骤的流程选项卡中,您可以添加自定义缩略图值

[140:100],[48:48],[319:319],[90,90]

于 2013-02-21T06:06:58.927 回答