我正在尝试调整给定 JCR 图像资源的大小并将其存储为新的再现。用例是生成“任意”比例的缩略图。
我想使用com.day.cq.dam.core.process.CreateThumbnailProcess
,但这在项目中不可用,我正在努力。
我正在尝试调整给定 JCR 图像资源的大小并将其存储为新的再现。用例是生成“任意”比例的缩略图。
我想使用com.day.cq.dam.core.process.CreateThumbnailProcess
,但这在项目中不可用,我正在努力。
我找到了一种非常低级的方法,可以调整由jcrPathToImage
toint 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 ...
}
您可以配置 DAM 更新资产工作流程以提供您想要创建的演绎版
http://localhost:4502/etc/workflow/models/dam/update_asset.html
在此工作流模型中选择缩略图创建步骤,然后在该步骤的流程选项卡中,您可以添加自定义缩略图值
[140:100],[48:48],[319:319],[90,90]