How to change programmatically generated static rendition's name
Hi There,
I am trying to generate a rendition for an image programmatically. And not able to change the rendition name.
Like as shown in the below image we have a rendition of " web 22x22". Now ask is to change this web to some other string (say "logo").

Code Snippet for rendition generation :
@Component(
service = WorkflowProcess.class,
property = {"process.label=Rendition Generator", Constants.SERVICE_DESCRIPTION
+ "= Create custom renditions for DAM asset"})
public class AssetRenditionMaker implements WorkflowProcess {
@Reference
private XyzServiceResolver XyzServiceResolver;
@Reference
private RenditionMaker renditionMaker;
@Reference
private AssetHandler assetHandler;
@Override
public void execute(final WorkItem workItem, final WorkflowSession workflowSession, final MetaDataMap metaDataMap) throws WorkflowException {
try (ResourceResolver serviceResolver = XyzServiceResolver.getServiceResolver()) {
final String payloadString = workItem.getWorkflowData().getPayload().toString();
final Resource resource = serviceResolver.getResource(payloadString);
if (null != resource) {
final Asset asset = resource.adaptTo(Asset.class);
if (null != asset) {
final int width = 22;
final int height = 22;
final int quality = 100;
final String mimeType = "Logo";
final String[] mimeTypesToKeep = {"image/jpeg", "image/png"};
final RenditionTemplate template = renditionMaker.createWebRenditionTemplate(asset, width, height, quality, mimeType, mimeTypesToKeep);
final List<Rendition> renditions = renditionMaker.generateRenditions(asset, template);
// using Asset Handler Api create thumbnails using the rendition for the asset.
final Collection<ThumbnailConfig> configs = null;
for (Rendition rendition : renditions) {
assetHandler.createThumbnails(asset, rendition, configs);
}
serviceResolver.commit();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Please do share your suggestions.
Thanks,
Ravi Joshi
