在CQ5中调整图像资源的大小

时间:2013-02-06 10:15:50

标签: thumbnails cq5

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

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

2 个答案:

答案 0 :(得分:3)

我发现了一种非常低级别的方法,可以将jcrPathToImage标识的图像调整为int 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 ...               
    }
    

答案 1 :(得分:1)

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

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

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

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