{"id":231,"date":"2019-06-15T12:36:00","date_gmt":"2019-06-15T12:36:00","guid":{"rendered":""},"modified":"2020-01-17T07:35:05","modified_gmt":"2020-01-17T07:35:05","slug":"named-transform-image-servlet-image-renditions-on-the-fly","status":"publish","type":"post","link":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/","title":{"rendered":"Named Transform Image Servlet (Image Renditions on the Fly)"},"content":{"rendered":"<div dir=\"ltr\" style=\"text-align: left;\">ACS Commons Package version 3.19.0<br \/>\nAvailable version for this servlet is 1.5.0.&nbsp;&nbsp;<\/p>\n<h2 style=\"text-align: left;\">Purpose:&nbsp;<\/h2>\n<p>Many web site designs demands consistency of images based on their use within components. For example, a panoramic spotlight may demand the image be 960 x 400, and bio picture must be 100 x 100 and greyscale.<\/p>\n<div>&nbsp;<\/div>\n<div>Some times we have some images on which we can not use image renditions generated by out of the box because of their cropped size. In that case we have to use our different types of dimensions for different types of component.&nbsp;&nbsp;<\/p>\n<div>\n<p>&nbsp;<\/p>\n<div>The ACS AEM Commons Named Transform Image Servlet allows specific image transforms to be defined centrally via OSGI configurations. These image transforms can be easily invoked via parameterized HTTP GET requests to image resources in AEM.<\/div>\n<\/div>\n<div>&nbsp;<\/div>\n<div>So let see about ACS AEM Commons provided Image Transformers and how to use these transformers and what will the effect of these on images.<\/div>\n<div>&nbsp;<\/div>\n<div>\n<div>\n<h2 style=\"background-color: white; border-bottom: 1px dotted #cccccc; box-sizing: border-box; color: #4d4d4d; font-family: SourceSans; font-size: 30px; font-weight: 200; line-height: 1.1; margin-bottom: 10px; margin-top: 1.25em; padding-bottom: 0.25em;\">Supported \u201cimage-y\u201d resources<\/h2>\n<p>Almost any \u201cimage-like\u201d resource can be requested using the named transform URI parameterization, and the underlying image will be derived and rendered using the transformation parameters.<\/p>\n<\/div>\n<div>Pages (cq:Page):<\/div>\n<div>&nbsp; &nbsp; &nbsp;HTTP GET \/content\/acme\/article.transform\/feature\/image.png<\/div>\n<div>Image component resources:<br \/>\n&nbsp; &nbsp; HTTP GET \/content\/acme\/article\/_jcr_content\/image.transform\/feature\/image.png<\/div>\n<div>DAM Assets (dam:Asset):<br \/>\n&nbsp; &nbsp; HTTP GET \/content\/dam\/images\/dog.jpg.transform\/feature\/image.jpg<\/div>\n<div>DAM Asset Renditions&#8221;<\/div>\n<div>&nbsp; &nbsp; HTTP GET&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\/content\/dam\/images\/dog.jpg\/jcr:content\/renditions\/thumbnail.jpg.transform\/feature\/image.jpg<\/div>\n<div>&nbsp; &nbsp;\u201cRaw\u201d Binary Images (nt:file or nt:resource):<br \/>\n&nbsp; &nbsp; &nbsp;HTTP GET \/etc\/designs\/acme\/images\/cat.png.transform\/feature\/image.jpg<\/div>\n<\/div>\n<h2 style=\"text-align: left;\">1. Resize:<\/h2>\n<p>Resizes the image to the specified width and\/or height.<\/p>\n<div>Name<\/div>\n<div>&nbsp;<\/div>\n<div>\n<ul style=\"box-sizing: border-box; margin-bottom: 1em; margin-top: 0px; text-align: left;\">\n<li><span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">Resize<\/span><\/span><\/li>\n<\/ul>\n<p>Params<\/p>\n<\/div>\n<div>\n<p>&nbsp;<\/p>\n<ul style=\"box-sizing: border-box; margin-bottom: 1em; margin-top: 0px;\">\n<li style=\"font-family: SourceSans; font-size: 17.5px; text-align: left;\"><span style=\"background-color: #cccccc; color: #a64d79;\">width=[width in px]<\/span><\/li>\n<li style=\"font-family: SourceSans; font-size: 17.5px; text-align: left;\"><span style=\"background-color: #cccccc; color: #a64d79;\">height=[height in px]Example<\/span><\/li>\n<\/ul>\n<p>Example<\/p>\n<ul style=\"text-align: left;\">\n<li><span style=\"background-color: #cccccc; color: #a64d79;\">resize:width=200<\/span><\/li>\n<li><span style=\"background-color: #cccccc; color: #a64d79;\">resize:height=300<\/span><\/li>\n<li><span style=\"background-color: #cccccc; color: #a64d79;\">resize:width=400&amp;height=400<\/span><\/li>\n<\/ul>\n<\/div>\n<h3 style=\"text-align: left;\">How to use:<\/h3>\n<div>\n<ul style=\"box-sizing: border-box; margin-bottom: 1em; margin-top: 0px;\">\n<li style=\"box-sizing: border-box;\">Define any number of sling:OsgiConfig\u2019s, each representing a different named transform<\/li>\n<\/ul>\n<\/div>\n<p><b>\/apps\/mysite\/config\/com.adobe.acs.commons.images.impl.NamedImageTransformerImpl-myTransformName.xml<\/b><\/p>\n<div>&nbsp;<\/div>\n<div>\n<pre style=\"background-color: whitesmoke; border-radius: 0px; border: 1px solid #eeeeee; box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; overflow-wrap: break-word; overflow: auto; padding: 1.5rem 2rem; word-break: break-all;\"><code style=\"background-color: transparent; border-radius: 0px; border: 0px; box-sizing: border-box; color: inherit; font-family: Courier, serif; font-size: 1em; padding: 0px; white-space: pre-wrap;\" data-lang=\"xml\"><span style=\"box-sizing: border-box; color: #999999; font-weight: bold;\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;<\/span>\n<span style=\"box-sizing: border-box; color: navy;\">&lt;jcr:root<\/span> <span style=\"box-sizing: border-box; color: teal;\">xmlns:sling=<\/span><span style=\"box-sizing: border-box; color: #dd1144;\">\"<a style=\"background-color: transparent; box-sizing: border-box; color: #333333; cursor: pointer !important;\" href=\"http:\/\/sling.apache.org\/jcr\/sling\/1.0\" rel=\"nofollow\"><span style=\"box-sizing: border-box;\">http<\/span><span style=\"box-sizing: border-box;\">:\/\/<\/span><span style=\"box-sizing: border-box;\">sling<\/span><span style=\"box-sizing: border-box;\">.<\/span><span style=\"box-sizing: border-box;\">apache<\/span><span style=\"box-sizing: border-box;\">.<\/span><span style=\"box-sizing: border-box;\">org<\/span><span style=\"box-sizing: border-box;\">\/<\/span><span style=\"box-sizing: border-box;\">jcr<\/span><span style=\"box-sizing: border-box;\">\/<\/span><span style=\"box-sizing: border-box;\">sling<\/span><span style=\"box-sizing: border-box;\">\/<\/span><span style=\"box-sizing: border-box;\">1<\/span><span style=\"box-sizing: border-box;\">.<\/span><span style=\"box-sizing: border-box;\">0<\/span><\/a>\"<\/span> <span style=\"box-sizing: border-box; color: teal;\">xmlns:cq=<\/span><span style=\"box-sizing: border-box; color: #dd1144;\">\"<a style=\"background-color: transparent; box-sizing: border-box; color: #333333; cursor: pointer !important;\" href=\"http:\/\/www.day.com\/jcr\/cq\/1.0\" rel=\"nofollow\"><span style=\"box-sizing: border-box;\">http<\/span><span style=\"box-sizing: border-box;\">:\/\/<\/span><span style=\"box-sizing: border-box;\">www<\/span><span style=\"box-sizing: border-box;\">.<\/span><span style=\"box-sizing: border-box;\">day<\/span><span style=\"box-sizing: border-box;\">.<\/span><span style=\"box-sizing: border-box;\">com<\/span><span style=\"box-sizing: border-box;\">\/<\/span><span style=\"box-sizing: border-box;\">jcr<\/span><span style=\"box-sizing: border-box;\">\/<\/span><span style=\"box-sizing: border-box;\">cq<\/span><span style=\"box-sizing: border-box;\">\/<\/span><span style=\"box-sizing: border-box;\">1<\/span><span style=\"box-sizing: border-box;\">.<\/span><span style=\"box-sizing: border-box;\">0<\/span><\/a>\"<\/span> <span style=\"box-sizing: border-box; color: teal;\">xmlns:jcr=<\/span><span style=\"box-sizing: border-box; color: #dd1144;\">\"<a style=\"background-color: transparent; box-sizing: border-box; color: #333333; cursor: pointer !important;\" href=\"http:\/\/www.jcp.org\/jcr\/1.0\" rel=\"nofollow\"><span style=\"box-sizing: border-box;\">http<\/span><span style=\"box-sizing: border-box;\">:\/\/<\/span><span style=\"box-sizing: border-box;\">www<\/span><span style=\"box-sizing: border-box;\">.<\/span><span style=\"box-sizing: border-box;\">jcp<\/span><span style=\"box-sizing: border-box;\">.<\/span><span style=\"box-sizing: border-box;\">org<\/span><span style=\"box-sizing: border-box;\">\/<\/span><span style=\"box-sizing: border-box;\">jcr<\/span><span style=\"box-sizing: border-box;\">\/<\/span><span style=\"box-sizing: border-box;\">1<\/span><span style=\"box-sizing: border-box;\">.<\/span><span style=\"box-sizing: border-box;\">0<\/span><\/a>\"<\/span> <span style=\"box-sizing: border-box; color: teal;\">xmlns:nt=<\/span><span style=\"box-sizing: border-box; color: #dd1144;\">\"<a style=\"background-color: transparent; box-sizing: border-box; color: #333333; cursor: pointer !important;\" href=\"http:\/\/www.jcp.org\/jcr\/nt\/1.0\" rel=\"nofollow\"><span style=\"box-sizing: border-box;\">http<\/span><span style=\"box-sizing: border-box;\">:\/\/<\/span><span style=\"box-sizing: border-box;\">www<\/span><span style=\"box-sizing: border-box;\">.<\/span><span style=\"box-sizing: border-box;\">jcp<\/span><span style=\"box-sizing: border-box;\">.<\/span><span style=\"box-sizing: border-box;\">org<\/span><span style=\"box-sizing: border-box;\">\/<\/span><span style=\"box-sizing: border-box;\">jcr<\/span><span style=\"box-sizing: border-box;\">\/<\/span><span style=\"box-sizing: border-box;\">nt<\/span><span style=\"box-sizing: border-box;\">\/<\/span><span style=\"box-sizing: border-box;\">1<\/span><span style=\"box-sizing: border-box;\">.<\/span><span style=\"box-sizing: border-box;\">0<\/span><\/a>\"<\/span>\n    <span style=\"box-sizing: border-box; color: teal;\">jcr:primaryType=<\/span><span style=\"box-sizing: border-box; color: #dd1144;\">\"sling:OsgiConfig\"<\/span>\n    <span style=\"box-sizing: border-box; color: teal;\">name=<\/span><span style=\"box-sizing: border-box; color: #dd1144;\">\"my-transform\"<\/span>\n    <span style=\"box-sizing: border-box; color: teal;\">transforms=<\/span><span style=\"box-sizing: border-box; color: #dd1144;\">\"[resize:width=400&amp;height=400]\"<\/span><span style=\"box-sizing: border-box; color: navy;\">\/&gt;<\/span><\/code><\/pre>\n<\/div>\n<div>&nbsp;<\/div>\n<div>&nbsp;<\/div>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Capture.png\"><img decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Capture.png\"><\/a><\/div>\n<div>&nbsp;<\/div>\n<div>&nbsp;<\/div>\n<p>&nbsp;<\/p>\n<ul style=\"text-align: left;\">\n<li>Get the URI to a supported resource (see above) to transform<\/li>\n<li>add the <span style=\"background-color: #cccccc;\">.<span style=\"color: #a64d79;\">transform<\/span><\/span> extension (append this even if the resource is named with an extension; like a DAM asset)<\/li>\n<li>Add an initial suffix segment that matches your transform name (Ex. <span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">\/my-transform<\/span><\/span>)<\/li>\n<li>Add a final suffix segment of <span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">\/image.&lt;image-format-extension&gt;<\/span><\/span> OR<span style=\"background-color: #cccccc;\"> <span style=\"color: #a64d79;\">\/img.&lt;image-format-extension&gt;<\/span><\/span><\/li>\n<\/ul>\n<p>Resulting in<\/p>\n<\/div>\n<div><span style=\"background-color: #cccccc; color: #a64d79;\">&lt;img src=&#8221;\/content\/mysite\/article\/_jcr_content\/image.transform\/my-transform\/image.png&#8221;\/&gt;<\/span><\/div>\n<div>or<\/div>\n<div><span style=\"color: #a64d79;\">&lt;img src=&#8221;\/content\/dam\/images\/dog.jpg.transform\/my-transform\/img.png&#8221;\/&gt;<\/span><\/div>\n<div>&nbsp;<\/div>\n<p>The below DAM Asset image has been resizes as defined by the custom defined my-transform transform rule set.<\/p>\n<div>&nbsp;<\/div>\n<p>bc&nbsp;<a href=\"http:\/\/localhost:4502\/content\/dam\/we-retail\/en\/activities\/hiking\/hiking_5.jpg.transform\/my-transform\/image.jpg\">http:\/\/localhost:4502\/content\/dam\/we-retail\/en\/activities\/hiking\/hiking_5.jpg.transform\/my-transform\/image.jpg<\/a><\/p>\n<div>\n<p>&nbsp;<\/p>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/resized.png\"><img decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/resized.png\"><\/a><\/div>\n<div style=\"clear: both; text-align: center;\">&nbsp;<\/div>\n<div>\n<p>&nbsp;<\/p>\n<div style=\"text-align: center;\">Resized Image<\/div>\n<div style=\"text-align: left;\">&nbsp;<\/div>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Original.png\"><img decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Original.png\"><\/a><\/div>\n<div style=\"clear: both; text-align: center;\">&nbsp;<\/div>\n<div style=\"text-align: left;\">&nbsp;<\/div>\n<div style=\"text-align: center;\">Original Image<\/div>\n<div>&nbsp;<\/div>\n<\/div>\n<h2 style=\"text-align: left;\">2. Bounded Resize (v1.8.0+)<\/h2>\n<p>Resizes the image but will not resize past maximum dimension constraints. Accepts two Integer params: height and width. <span style=\"background-color: yellow;\">Either width or height will scale to the parameterized limit. The other dimension scale automatically to maintain the original aspect ratio.<\/span> If the original image is smaller than the configured dimensions the image won\u2019t be resized. Upscale param can be set to true to allow upscaling smaller images.<\/p>\n<div>&nbsp;<\/div>\n<div>Name<\/div>\n<div>\n<ul style=\"text-align: left;\">\n<li><span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">bounded-resize<\/span><\/span><\/li>\n<\/ul>\n<p>Params<\/p>\n<ul style=\"text-align: left;\">\n<li><span style=\"background-color: #cccccc; color: #a64d79;\">width=[width in px]<\/span><\/li>\n<li><span style=\"background-color: #cccccc; color: #a64d79;\">height=[height in px]<\/span><\/li>\n<li><span style=\"background-color: #cccccc; color: #a64d79;\">upscale=true\/false<\/span><\/li>\n<\/ul>\n<p>Example<\/p>\n<ul style=\"text-align: left;\">\n<li><span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">bounded-resize:width=200<\/span><\/span><\/li>\n<li><span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">bounded-resize:height=300<\/span><\/span><\/li>\n<li><span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">bounded-resize:width=400&amp;height=400&amp;upscale=true<\/span><\/span><\/li>\n<\/ul>\n<\/div>\n<div>\n<h3>How to use:<\/h3>\n<\/div>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/bounded-config.png\"><img decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/bounded-config.png\"><\/a><\/div>\n<div>The below DAM Asset image has been resizes as defined by the custom defined <span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">my-transform-bounded<\/span><\/span> transform rule set.&nbsp;&nbsp;<\/p>\n<div>&nbsp;<\/div>\n<p>bc.&nbsp;<a href=\"http:\/\/localhost:4502\/content\/dam\/we-retail\/en\/activities\/hiking\/hiking_5.jpg.transform\/my-transform-bounded\/image.jpg\">http:\/\/localhost:4502\/content\/dam\/we-retail\/en\/activities\/hiking\/hiking_5.jpg.transform\/my-transform-bounded\/image.jpg<\/a><\/p>\n<\/div>\n<\/div>\n<div>&nbsp;<\/div>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/bounded.png\"><img decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/bounded.png\"><\/a><\/div>\n<div>&nbsp;<\/div>\n<div style=\"text-align: center;\">Bounded-resize<\/div>\n<p>&nbsp;<\/p>\n<h2 style=\"text-align: left;\">3. Crop<\/h2>\n<p>Crops the image to the specified bounds.<\/p>\n<p>Name<\/p>\n<ul style=\"text-align: left;\">\n<li><span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">crop<\/span><\/span><\/li>\n<\/ul>\n<p>Params<\/p>\n<ul style=\"text-align: left;\">\n<li><span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">bounds=[x,y,width,height]<\/span><\/span><\/li>\n<li><span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">smart=[boolean] Defaults to true. Smart bounding will attempt to shift the specified crop-zone to fit within the image dimensions if the crop-zone falls outside the images dimensions.<\/span><\/span><\/li>\n<\/ul>\n<p>Example<\/p>\n<ul style=\"text-align: left;\">\n<li><span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">crop:bounds=0,10,300,350<\/span><\/span><\/li>\n<li><span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">crop:bounds=0,10,300,350&amp;smart=false<\/span><\/span><\/li>\n<li><span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">crop:bounds=25%,0,50%,100%<\/span><\/span>\n<ul>\n<li><span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">Relative cropping available since v2.8.0\/3.4.0<\/span><\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 style=\"text-align: left;\">How to use:<\/h3>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Crop-config.png\"><img decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Crop-config.png\"><\/a><\/div>\n<div>&nbsp;<\/div>\n<div>The below DAM Asset image has been cropped as defined by the custom defined<span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\"> my-transform-crop<\/span><\/span> transform rule set.<\/div>\n<div>&nbsp;<\/div>\n<div><a href=\"http:\/\/localhost:4502\/content\/dam\/we-retail\/en\/activities\/hiking\/hiking_5.jpg.transform\/my-transform-crop\/image.jpg\">http:\/\/localhost:4502\/content\/dam\/we-retail\/en\/activities\/hiking\/hiking_5.jpg.transform\/my-transform-crop\/image.jpg<\/a><\/div>\n<div>&nbsp;<\/div>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Cropped.png\"><img decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Cropped.png\"><\/a><\/div>\n<div>&nbsp;<\/div>\n<div>&nbsp;<\/div>\n<p>&nbsp;<\/p>\n<h2 style=\"text-align: left;\">4. Greyscale<\/h2>\n<p>Converts the image to greyscale.<\/p>\n<p>Name<\/p>\n<ul style=\"text-align: left;\">\n<li>greyscale<\/li>\n<\/ul>\n<p>Params<\/p>\n<ul style=\"text-align: left;\">\n<li>None<\/li>\n<\/ul>\n<p>Example<\/p>\n<ul style=\"text-align: left;\">\n<li>greyscale<\/li>\n<\/ul>\n<div>&nbsp;<\/div>\n<div>If we want to use all configs in single transform rule than we can use. config will be like this:<\/div>\n<div>&nbsp;<\/div>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/all-configs.png\"><img decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/all-configs.png\"><\/a><\/div>\n<div>&nbsp;<\/div>\n<div>&nbsp;<\/div>\n<p>The below DAM Asset image has been resizes, cropped and greyscaled as defined by the custom defined <span style=\"background-color: #cccccc;\"><span style=\"color: #a64d79;\">my-transform-all<\/span><\/span> transform rule set.<\/p>\n<div>&nbsp;<\/div>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/all.png\"><img decoding=\"async\" src=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/all.png\"><\/a><\/div>\n<div>&nbsp;<\/div>\n<div>&nbsp;<\/div>\n<div>&nbsp;<b>Note:<\/b>&nbsp;Order matters when defining your image transformation rules. For example, a resize then crop can yield significantly different results than a crop then resize.&nbsp;&nbsp;<\/p>\n<p><span style=\"color: #741b47;\"><b><i>Be Happy\ud83d\ude0a<\/i><\/b><\/span><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>ACS Commons Package version 3.19.0 Available version for this servlet is 1.5.0.&nbsp;&nbsp; Purpose:&nbsp; Many web site designs demands consistency of [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[176,2,181,182,82,178,177,180,179,183],"tags":[],"class_list":["post-231","post","type-post","status-publish","format-standard","hentry","category-adobe","category-aem","category-aem-6-4","category-chnage-image-size","category-cq5","category-image-cropped","category-image-rendition","category-image-rendition-on-the-fly","category-image-resize","category-named-transform-image-servlet"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Named Transform Image Servlet (Image Renditions on the Fly) - AEM Blog | Lhotse Technologies<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Named Transform Image Servlet (Image Renditions on the Fly) - AEM Blog | Lhotse Technologies\" \/>\n<meta property=\"og:description\" content=\"ACS Commons Package version 3.19.0 Available version for this servlet is 1.5.0.&nbsp;&nbsp; Purpose:&nbsp; Many web site designs demands consistency of [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/\" \/>\n<meta property=\"og:site_name\" content=\"AEM Blog | Lhotse Technologies\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-15T12:36:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-01-17T07:35:05+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Capture.png\" \/>\n<meta name=\"author\" content=\"Team Lhotse\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Team Lhotse\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/\"},\"author\":{\"name\":\"Team Lhotse\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/person\/fd7bee89b050d7c7195fc75b681b053d\"},\"headline\":\"Named Transform Image Servlet (Image Renditions on the Fly)\",\"datePublished\":\"2019-06-15T12:36:00+00:00\",\"dateModified\":\"2020-01-17T07:35:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/\"},\"wordCount\":831,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Capture.png\",\"articleSection\":[\"Adobe\",\"AEM\",\"AEM 6.4\",\"chnage image size\",\"CQ5\",\"image cropped\",\"Image rendition\",\"Image rendition on the fly\",\"Image resize\",\"Named Transform Image Servlet\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/\",\"url\":\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/\",\"name\":\"Named Transform Image Servlet (Image Renditions on the Fly) - AEM Blog | Lhotse Technologies\",\"isPartOf\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Capture.png\",\"datePublished\":\"2019-06-15T12:36:00+00:00\",\"dateModified\":\"2020-01-17T07:35:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#primaryimage\",\"url\":\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Capture.png\",\"contentUrl\":\"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Capture.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/lhotsetechnologies.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Named Transform Image Servlet (Image Renditions on the Fly)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#website\",\"url\":\"https:\/\/lhotsetechnologies.com\/blog\/\",\"name\":\"AEM Blog | Lhotse Technologies\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/lhotsetechnologies.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#organization\",\"name\":\"AEM Blog | Lhotse Technologies\",\"url\":\"https:\/\/lhotsetechnologies.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/07\/lhotse-logo.png\",\"contentUrl\":\"https:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/07\/lhotse-logo.png\",\"width\":539,\"height\":172,\"caption\":\"AEM Blog | Lhotse Technologies\"},\"image\":{\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/person\/fd7bee89b050d7c7195fc75b681b053d\",\"name\":\"Team Lhotse\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"caption\":\"Team Lhotse\"},\"url\":\"https:\/\/lhotsetechnologies.com\/blog\/author\/team-lhotse\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Named Transform Image Servlet (Image Renditions on the Fly) - AEM Blog | Lhotse Technologies","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/","og_locale":"en_US","og_type":"article","og_title":"Named Transform Image Servlet (Image Renditions on the Fly) - AEM Blog | Lhotse Technologies","og_description":"ACS Commons Package version 3.19.0 Available version for this servlet is 1.5.0.&nbsp;&nbsp; Purpose:&nbsp; Many web site designs demands consistency of [&hellip;]","og_url":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/","og_site_name":"AEM Blog | Lhotse Technologies","article_published_time":"2019-06-15T12:36:00+00:00","article_modified_time":"2020-01-17T07:35:05+00:00","og_image":[{"url":"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Capture.png","type":"","width":"","height":""}],"author":"Team Lhotse","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Team Lhotse","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#article","isPartOf":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/"},"author":{"name":"Team Lhotse","@id":"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/person\/fd7bee89b050d7c7195fc75b681b053d"},"headline":"Named Transform Image Servlet (Image Renditions on the Fly)","datePublished":"2019-06-15T12:36:00+00:00","dateModified":"2020-01-17T07:35:05+00:00","mainEntityOfPage":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/"},"wordCount":831,"commentCount":0,"publisher":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/#organization"},"image":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#primaryimage"},"thumbnailUrl":"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Capture.png","articleSection":["Adobe","AEM","AEM 6.4","chnage image size","CQ5","image cropped","Image rendition","Image rendition on the fly","Image resize","Named Transform Image Servlet"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/","url":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/","name":"Named Transform Image Servlet (Image Renditions on the Fly) - AEM Blog | Lhotse Technologies","isPartOf":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#primaryimage"},"image":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#primaryimage"},"thumbnailUrl":"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Capture.png","datePublished":"2019-06-15T12:36:00+00:00","dateModified":"2020-01-17T07:35:05+00:00","breadcrumb":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#primaryimage","url":"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Capture.png","contentUrl":"http:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/06\/Capture.png"},{"@type":"BreadcrumbList","@id":"https:\/\/lhotsetechnologies.com\/blog\/named-transform-image-servlet-image-renditions-on-the-fly\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lhotsetechnologies.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Named Transform Image Servlet (Image Renditions on the Fly)"}]},{"@type":"WebSite","@id":"https:\/\/lhotsetechnologies.com\/blog\/#website","url":"https:\/\/lhotsetechnologies.com\/blog\/","name":"AEM Blog | Lhotse Technologies","description":"","publisher":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lhotsetechnologies.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/lhotsetechnologies.com\/blog\/#organization","name":"AEM Blog | Lhotse Technologies","url":"https:\/\/lhotsetechnologies.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/07\/lhotse-logo.png","contentUrl":"https:\/\/lhotsetechnologies.com\/blog\/wp-content\/uploads\/2019\/07\/lhotse-logo.png","width":539,"height":172,"caption":"AEM Blog | Lhotse Technologies"},"image":{"@id":"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/person\/fd7bee89b050d7c7195fc75b681b053d","name":"Team Lhotse","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lhotsetechnologies.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","caption":"Team Lhotse"},"url":"https:\/\/lhotsetechnologies.com\/blog\/author\/team-lhotse\/"}]}},"_links":{"self":[{"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/231","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=231"}],"version-history":[{"count":4,"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/231\/revisions"}],"predecessor-version":[{"id":555,"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/231\/revisions\/555"}],"wp:attachment":[{"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=231"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=231"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lhotsetechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}