特定の 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();
アセット表現を使用して、サイズ変更された Image を保存します。
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 Update Asset ワークフローを構成して、作成したいレンディションを提供できます。
http://localhost:4502/etc/workflow/models/dam/update_asset.html
このワークフロー モデルでサムネイル作成ステップを選択し、そのステップの [プロセス] タブでカスタム サムネイル値を追加できます。
[140:100]、[48:48]、[319:319]、[90,90]