2013-02-06 47 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]