我正在尝试调整给定的JCR图像资源的大小并将其存储为新的再现。用例是以“任意”比例生成缩略图。
我想使用com.day.cq.dam.core.process.CreateThumbnailProcess
,但这项目在项目中无法使用,我正在努力。
答案 0 :(得分:3)
我发现了一种非常低级别的方法,可以将jcrPathToImage
标识的图像调整为int targetWidth
和int targetHeight
。
调整图片大小
Resource resource = getResourceResolver().getResource(jcrPathToImage);
Asset asset = resource.adaptTo(Asset.class);
Layer layer = new Layer(asset.getOriginal().getStream())
layer.resize(targetWidth, targetHeight);
在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]