2013-02-06 46 views
1

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

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

回答

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创建新的再现

    原始图像

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

    商店使用其资产表示调整后的图像的提取MIME类型。

    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

可以配置DAM更新资产的工作流程,让您想获得创建

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

在此工作流模型选择缩略图创建步骤的引渡和在这一进程选项卡您可以添加自定义缩略图值的步骤

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