{"id":21332,"date":"2015-11-25T14:17:38","date_gmt":"2015-11-25T14:17:38","guid":{"rendered":"http:\/\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization"},"modified":"2024-06-03T13:19:32","modified_gmt":"2024-06-03T20:19:32","slug":"building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization","title":{"rendered":"Building creative content on the fly for A\/B testing and 1:1 personalization"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p>Content Optimization and Personalization programs can deliver tremendous ROI to an organization but tend to be very resource intensive, requiring developers to build the code for alternate experiences and creative folks to generate the content. Many of the content optimization\/personalization tools out there today (Maxymiser, Optimizely, Adobe Target, Ensighten etc.) have created WYSIWYG (What You See Is What You Get) editors to help relieve the code\/development bottleneck but the creative bottleneck stubbornly remains.<\/p>\n<p>Often you\u2019ll have a great personalization or A\/B test idea but can\u2019t execute it because the creative team doesn\u2019t have the time or resources to create what\u2019s needed. Anybody on an optimization\/testing\/personalization team has dealt with this before and it\u2019s been an intractable problem for years. \u00a0<\/p>\n<p>It\u2019s a bit of a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Catch-22\">catch 22<\/a>: the more successful you are in your optimization program, the harder and more resource intensive it is going to be to maintain, especially as you get into personalization which requires more and more content catered to the individual user. How does one scale-up such initiatives going forward without hiring an army of creative folks? \u00a0<\/p>\n<h3>Transforming your media to fit your requirements<\/h3>\n<p>Often there\u2019s already creative content on your website somewhere or images from past campaigns that you can reuse; it\u2019s only the wrong size, needs rounded corners, or just needs specific text overlayed on top of it. Let\u2019s take Williams-Sonoma\u2019s website (a retailer I love) as an example.<\/p>\n<p>If you go to <a href=\"http:\/\/www.williams-sonoma.com\/\">williams-sonoma.com<\/a> and scroll down on the homepage you\u2019ll see a section titled \u201cJust for You!\u201d. This section is used for displaying personalized content based on your browsing behavior. If this is your first time at Williams-Sonoma and you\u2019ve yet to browse, you\u2019ll see the default content. At the time of writing, it looks like this:<\/p>\n<p><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_500\/double_image.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_500\/double_image.jpg\" alt=\"Williams Sonoma products sample\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"500\" height=\"344\"\/><\/a><\/p>\n<p>But if I start navigating the site, Williams Sonoma learns what sort of products I\u2019m interested in and will show me relevant content, making my experience better. I navigated around the \u201cCutlery\u201d section and now on the homepage I\u2019m presented with the following:<\/p>\n<p><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_500\/cutlery.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_500\/cutlery.jpg\" alt=\"Williams Sonoma products sample\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"500\" height=\"344\"\/><\/a><\/p>\n<p>This is very cool, now I can see relevant content with less clutter.<\/p>\n<p>But how does this look from Williams Sonoma\u2019s end? Clearly they have to maintain additional content, about a dozen or so different versions for each main product category. This of course puts an additional strain on both the development and creative teams.<\/p>\n<p>This might be why we only see the dozen or so different versions and then only on one spot on one page. If they wanted to expand their personalization initiatives they would have to weigh the benefits against the additional effort, and while the benefits are linear, the effort becomes exponential.<\/p>\n<p>When I was navigating through the cutlery category to build up a category affinity, I was actually looking at the \u201c<a href=\"http:\/\/www.williams-sonoma.com\/products\/rosle-cheese-knives\/\">R\u00f6sle Cheese Knives<\/a>\u201d. But when I returned to the homepage I was shown \u201cShun Cutlery\u201d content. Same category (cutlery) but still probably irrelevant to me, perhaps not personalized enough. As we discussed, it\u2019s probably impossible to get to this level of personalization (true 1:1) as it\u2019s just too much effort to create all the resources that would be needed as I\u2019d guess Williams-Sonoma has in the area of 1000 products or more.<\/p>\n<p>Can you imagine what the response would be if you went to your creative team and asked them to create 1000+ different images for each spot you\u2019d like to try personalized content (on top of their normal job)? I\u2019m guessing there would be laughter followed by an invitation to get out of their office.<\/p>\n<p>With Cloudinary we can actually create all of these images dynamically, simply by changing the url of the image, applying custom parameters right in the image URL and building an image on the fly. The following images were created with absolutely zero use of image software and built to mirror the creative style of the images currently on williams-sonoma.com:<\/p>\n<p><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/fetch\/w_320,h_400,c_fill,bo_1px_solid_gray\/l_white-bar,w_300,h_90,g_south,y_20\/l_text:Helvetica_14:ROSLE%20CHEESE%20KNIVES%20%3E,g_south,y_58\/https:\/\/s3.amazonaws.com\/blog-images-origin\/cheese_knives.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/fetch\/w_320,h_400,c_fill,bo_1px_solid_gray\/l_white-bar,w_300,h_90,g_south,y_20\/l_text:Helvetica_14:ROSLE%20CHEESE%20KNIVES%20%3E,g_south,y_58\/https:\/\/s3.amazonaws.com\/blog-images-origin\/cheese_knives.jpg\" alt=\"Creative content with text overlay\" loading=\"lazy\" class=\"c-transformed-asset\" \/><\/a><\/p>\n<p><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/fetch\/w_320,h_400,c_fill,bo_1px_solid_gray\/l_white-bar,w_300,h_90,g_south,y_10\/l_text:Helvetica_14:VITAMIX%20780%20BLENDER%20%3E,g_south,y_48\/https:\/\/s3.amazonaws.com\/blog-images-origin\/blender.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/fetch\/w_320,h_400,c_fill,bo_1px_solid_gray\/l_white-bar,w_300,h_90,g_south,y_10\/l_text:Helvetica_14:VITAMIX%20780%20BLENDER%20%3E,g_south,y_48\/https:\/\/s3.amazonaws.com\/blog-images-origin\/blender.jpg\" alt=\"Creating content personalized\" loading=\"lazy\" class=\"c-transformed-asset\" \/><\/a><\/p>\n<div style=\"clear: both; display: block\"><\/div>\n<p>Here are the details showing how these images were created:<\/p>\n<p><cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;nodejs&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;, {type: \\&quot;fetch\\&quot;, transformation: [ {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;}, {overlay: \\&quot;white-bar\\&quot;, width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 20}, {overlay: {font_family: \\&quot;Helvetica\\&quot;, font_size: 14, text: \\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;}, gravity: \\&quot;south\\&quot;, y: 58} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;, {type: \\&quot;fetch\\&quot;, transformation: [\\n  {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;},\\n  {overlay: \\&quot;white-bar\\&quot;, width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 20},\\n  {overlay: {font_family: \\&quot;Helvetica\\&quot;, font_size: 14, text: \\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;}, gravity: \\&quot;south\\&quot;, y: 58}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\n  \\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;\\n)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(20)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(58)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\n  \\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;\\n)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(20)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(58)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot; type=\\&quot;fetch\\&quot;&gt; &lt;Transformation width=\\&quot;320\\&quot; height=\\&quot;400\\&quot; border=\\&quot;1px_solid_gray\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;Transformation overlay=\\&quot;white-bar\\&quot; width=\\&quot;300\\&quot; height=\\&quot;90\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;20\\&quot; \\\/&gt; &lt;Transformation overlay={{fontFamily: \\&quot;Helvetica\\&quot;, fontSize: 14, text: \\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;}} gravity=\\&quot;south\\&quot; y=\\&quot;58\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot; type=\\&quot;fetch\\&quot;&gt;\\n\\t&lt;Transformation width=\\&quot;320\\&quot; height=\\&quot;400\\&quot; border=\\&quot;1px_solid_gray\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt;\\n\\t&lt;Transformation overlay=\\&quot;white-bar\\&quot; width=\\&quot;300\\&quot; height=\\&quot;90\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;20\\&quot; \\\/&gt;\\n\\t&lt;Transformation overlay={{fontFamily: \\&quot;Helvetica\\&quot;, fontSize: 14, text: \\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;}} gravity=\\&quot;south\\&quot; y=\\&quot;58\\&quot; \\\/&gt;\\n&lt;\\\/Image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;cloudinary-react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue_2&quot;,&quot;framework&quot;:&quot;vue_2&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\n  \\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;\\n)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(20)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(58)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\n  \\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;\\n)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(20)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(58)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot; type=\\&quot;fetch\\&quot;&gt; &lt;cld-transformation width=\\&quot;320\\&quot; height=\\&quot;400\\&quot; border=\\&quot;1px_solid_gray\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;white-bar\\&quot; width=\\&quot;300\\&quot; height=\\&quot;90\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;20\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;Helvetica&#039;, fontSize: 14, text: &#039;ROSLE%20CHEESE%20KNIVES%20%3E&#039;}\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;58\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot; type=\\&quot;fetch\\&quot;&gt;\\n\\t&lt;cld-transformation width=\\&quot;320\\&quot; height=\\&quot;400\\&quot; border=\\&quot;1px_solid_gray\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;white-bar\\&quot; width=\\&quot;300\\&quot; height=\\&quot;90\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;20\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;Helvetica&#039;, fontSize: 14, text: &#039;ROSLE%20CHEESE%20KNIVES%20%3E&#039;}\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;58\\&quot; \\\/&gt;\\n&lt;\\\/cld-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;cloudinary-vue&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular_2&quot;,&quot;framework&quot;:&quot;angular_2&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\n  \\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;\\n)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(20)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(58)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\n  \\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;\\n)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(20)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(58)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot; type=\\&quot;fetch\\&quot;&gt; &lt;cl-transformation width=\\&quot;320\\&quot; height=\\&quot;400\\&quot; border=\\&quot;1px_solid_gray\\&quot; crop=\\&quot;fill\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;white-bar\\&quot; width=\\&quot;300\\&quot; height=\\&quot;90\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;20\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;text:Helvetica_14:ROSLE%20CHEESE%20KNIVES%20%3E\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;58\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot; type=\\&quot;fetch\\&quot;&gt;\\n\\t&lt;cl-transformation width=\\&quot;320\\&quot; height=\\&quot;400\\&quot; border=\\&quot;1px_solid_gray\\&quot; crop=\\&quot;fill\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;white-bar\\&quot; width=\\&quot;300\\&quot; height=\\&quot;90\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;20\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;text:Helvetica_14:ROSLE%20CHEESE%20KNIVES%20%3E\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;58\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n&lt;\\\/cl-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/angular-5.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js_2&quot;,&quot;framework&quot;:&quot;js_2&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\n  \\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;\\n)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(20)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(58)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\n  \\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;\\n)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(20)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(58)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg&#039;, {type: \\&quot;fetch\\&quot;, transformation: [ {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;}, {overlay: new cloudinary.Layer().publicId(\\&quot;white-bar\\&quot;), width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 20}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;), gravity: \\&quot;south\\&quot;, y: 58} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg&#039;, {type: \\&quot;fetch\\&quot;, transformation: [\\n  {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;},\\n  {overlay: new cloudinary.Layer().publicId(\\&quot;white-bar\\&quot;), width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 20},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;), gravity: \\&quot;south\\&quot;, y: 58}\\n  ]}).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;).image(type=\\&quot;fetch\\&quot;, transformation=[ {&#039;width&#039;: 320, &#039;height&#039;: 400, &#039;border&#039;: \\&quot;1px_solid_gray\\&quot;, &#039;crop&#039;: \\&quot;fill\\&quot;}, {&#039;overlay&#039;: \\&quot;white-bar\\&quot;, &#039;width&#039;: 300, &#039;height&#039;: 90, &#039;gravity&#039;: \\&quot;south\\&quot;, &#039;y&#039;: 20}, {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;Helvetica\\&quot;, &#039;font_size&#039;: 14, &#039;text&#039;: \\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;}, &#039;gravity&#039;: \\&quot;south\\&quot;, &#039;y&#039;: 58} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;).image(type=\\&quot;fetch\\&quot;, transformation=[\\n  {&#039;width&#039;: 320, &#039;height&#039;: 400, &#039;border&#039;: \\&quot;1px_solid_gray\\&quot;, &#039;crop&#039;: \\&quot;fill\\&quot;},\\n  {&#039;overlay&#039;: \\&quot;white-bar\\&quot;, &#039;width&#039;: 300, &#039;height&#039;: 90, &#039;gravity&#039;: \\&quot;south\\&quot;, &#039;y&#039;: 20},\\n  {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;Helvetica\\&quot;, &#039;font_size&#039;: 14, &#039;text&#039;: \\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;}, &#039;gravity&#039;: \\&quot;south\\&quot;, &#039;y&#039;: 58}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new ImageTag(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(320)\\n-&gt;height(400))\\n\\t-&gt;border(Border::solid(1,Color::GRAY))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;white-bar\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(300)\\n-&gt;height(90)))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::south()))\\n-&gt;offsetY(20))\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;,(new TextStyle(\\&quot;Helvetica\\&quot;,14))))\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::south()))\\n-&gt;offsetY(58))\\n\\t)\\n\\t-&gt;deliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(320)\\n-&gt;height(400))\\n\\t-&gt;border(Border::solid(1,Color::GRAY))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;white-bar\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(300)\\n-&gt;height(90)))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::south()))\\n-&gt;offsetY(20))\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;,(new TextStyle(\\&quot;Helvetica\\&quot;,14))))\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::south()))\\n-&gt;offsetY(58))\\n\\t)\\n\\t-&gt;deliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;, array(\\&quot;type\\&quot;=&gt;\\&quot;fetch\\&quot;, \\&quot;transformation\\&quot;=&gt;array( array(\\&quot;width\\&quot;=&gt;320, \\&quot;height\\&quot;=&gt;400, \\&quot;border\\&quot;=&gt;\\&quot;1px_solid_gray\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&quot;), array(\\&quot;overlay\\&quot;=&gt;\\&quot;white-bar\\&quot;, \\&quot;width\\&quot;=&gt;300, \\&quot;height\\&quot;=&gt;90, \\&quot;gravity\\&quot;=&gt;\\&quot;south\\&quot;, \\&quot;y\\&quot;=&gt;20), array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;Helvetica\\&quot;, \\&quot;font_size\\&quot;=&gt;14, \\&quot;text\\&quot;=&gt;\\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;south\\&quot;, \\&quot;y\\&quot;=&gt;58) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;, array(\\&quot;type\\&quot;=&gt;\\&quot;fetch\\&quot;, \\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;width\\&quot;=&gt;320, \\&quot;height\\&quot;=&gt;400, \\&quot;border\\&quot;=&gt;\\&quot;1px_solid_gray\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&quot;),\\n  array(\\&quot;overlay\\&quot;=&gt;\\&quot;white-bar\\&quot;, \\&quot;width\\&quot;=&gt;300, \\&quot;height\\&quot;=&gt;90, \\&quot;gravity\\&quot;=&gt;\\&quot;south\\&quot;, \\&quot;y\\&quot;=&gt;20),\\n  array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;Helvetica\\&quot;, \\&quot;font_size\\&quot;=&gt;14, \\&quot;text\\&quot;=&gt;\\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;south\\&quot;, \\&quot;y\\&quot;=&gt;58)\\n  )))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().width(320).height(400).border(\\&quot;1px_solid_gray\\&quot;).crop(\\&quot;fill\\&quot;).chain() .overlay(new Layer().publicId(\\&quot;white-bar\\&quot;)).width(300).height(90).gravity(\\&quot;south\\&quot;).y(20).chain() .overlay(new TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;)).gravity(\\&quot;south\\&quot;).y(58)).type(\\&quot;fetch\\&quot;).imageTag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .width(320).height(400).border(\\&quot;1px_solid_gray\\&quot;).crop(\\&quot;fill\\&quot;).chain()\\n  .overlay(new Layer().publicId(\\&quot;white-bar\\&quot;)).width(300).height(90).gravity(\\&quot;south\\&quot;).y(20).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;)).gravity(\\&quot;south\\&quot;).y(58)).type(\\&quot;fetch\\&quot;).imageTag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;, type: \\&quot;fetch\\&quot;, transformation: [ {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;}, {overlay: \\&quot;white-bar\\&quot;, width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 20}, {overlay: {font_family: \\&quot;Helvetica\\&quot;, font_size: 14, text: \\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;}, gravity: \\&quot;south\\&quot;, y: 58} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;, type: \\&quot;fetch\\&quot;, transformation: [\\n  {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;},\\n  {overlay: \\&quot;white-bar\\&quot;, width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 20},\\n  {overlay: {font_family: \\&quot;Helvetica\\&quot;, font_size: 14, text: \\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;}, gravity: \\&quot;south\\&quot;, y: 58}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(320).Height(400).Border(\\&quot;1px_solid_gray\\&quot;).Crop(\\&quot;fill\\&quot;).Chain() .Overlay(new Layer().PublicId(\\&quot;white-bar\\&quot;)).Width(300).Height(90).Gravity(\\&quot;south\\&quot;).Y(20).Chain() .Overlay(new TextLayer().FontFamily(\\&quot;Helvetica\\&quot;).FontSize(14).Text(\\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;)).Gravity(\\&quot;south\\&quot;).Y(58)).Action(\\&quot;fetch\\&quot;).BuildImageTag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Width(320).Height(400).Border(\\&quot;1px_solid_gray\\&quot;).Crop(\\&quot;fill\\&quot;).Chain()\\n  .Overlay(new Layer().PublicId(\\&quot;white-bar\\&quot;)).Width(300).Height(90).Gravity(\\&quot;south\\&quot;).Y(20).Chain()\\n  .Overlay(new TextLayer().FontFamily(\\&quot;Helvetica\\&quot;).FontSize(14).Text(\\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;)).Gravity(\\&quot;south\\&quot;).Y(58)).Action(\\&quot;fetch\\&quot;).BuildImageTag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;dart&quot;,&quot;framework&quot;:&quot;dart&quot;,&quot;language&quot;:&quot;dart&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_320,h_400,c_fill,bo_1px_solid_gray\\\/l_white-bar,w_300,h_90,g_south,y_20\\\/l_text:Helvetica_14:ROSLE CHEESE KNIVES &gt;,g_south,y_58\\&quot;)\\n\\t.setDeliveryType(\\&quot;fetch\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_320,h_400,c_fill,bo_1px_solid_gray\\\/l_white-bar,w_300,h_90,g_south,y_20\\\/l_text:Helvetica_14:ROSLE CHEESE KNIVES &gt;,g_south,y_58\\&quot;)\\n\\t.setDeliveryType(\\&quot;fetch\\&quot;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setType( \\&quot;fetch\\&quot;).setTransformation(CLDTransformation().setWidth(320).setHeight(400).setBorder(\\&quot;1px_solid_gray\\&quot;).setCrop(\\&quot;fill\\&quot;).chain() .setOverlay(\\&quot;white-bar\\&quot;).setWidth(300).setHeight(90).setGravity(\\&quot;south\\&quot;).setY(20).chain() .setOverlay(\\&quot;text:Helvetica_14:ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;).setGravity(\\&quot;south\\&quot;).setY(58)).generate(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setType( \\&quot;fetch\\&quot;).setTransformation(CLDTransformation()\\n  .setWidth(320).setHeight(400).setBorder(\\&quot;1px_solid_gray\\&quot;).setCrop(\\&quot;fill\\&quot;).chain()\\n  .setOverlay(\\&quot;white-bar\\&quot;).setWidth(300).setHeight(90).setGravity(\\&quot;south\\&quot;).setY(20).chain()\\n  .setOverlay(\\&quot;text:Helvetica_14:ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;).setGravity(\\&quot;south\\&quot;).setY(58)).generate(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().width(320).height(400).border(\\&quot;1px_solid_gray\\&quot;).crop(\\&quot;fill\\&quot;).chain() .overlay(new Layer().publicId(\\&quot;white-bar\\&quot;)).width(300).height(90).gravity(\\&quot;south\\&quot;).y(20).chain() .overlay(new TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;)).gravity(\\&quot;south\\&quot;).y(58)).type(\\&quot;fetch\\&quot;).generate(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .width(320).height(400).border(\\&quot;1px_solid_gray\\&quot;).crop(\\&quot;fill\\&quot;).chain()\\n  .overlay(new Layer().publicId(\\&quot;white-bar\\&quot;)).width(300).height(90).gravity(\\&quot;south\\&quot;).y(20).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;)).gravity(\\&quot;south\\&quot;).y(58)).type(\\&quot;fetch\\&quot;).generate(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Android&quot;,&quot;packageName&quot;:&quot;cloudinary-android&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;flutter&quot;,&quot;framework&quot;:&quot;flutter&quot;,&quot;language&quot;:&quot;flutter&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_320,h_400,c_fill,bo_1px_solid_gray\\\/l_white-bar,w_300,h_90,g_south,y_20\\\/l_text:Helvetica_14:ROSLE CHEESE KNIVES &gt;,g_south,y_58\\&quot;)\\n\\t.setDeliveryType(\\&quot;fetch\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_320,h_400,c_fill,bo_1px_solid_gray\\\/l_white-bar,w_300,h_90,g_south,y_20\\\/l_text:Helvetica_14:ROSLE CHEESE KNIVES &gt;,g_south,y_58\\&quot;)\\n\\t.setDeliveryType(\\&quot;fetch\\&quot;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Flutter&quot;,&quot;packageName&quot;:&quot;cloudinary_flutter&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;kotlin&quot;,&quot;framework&quot;:&quot;kotlin&quot;,&quot;language&quot;:&quot;kotlin&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(320)\\n height(400) })\\n\\t border(Border.solid(1,Color.GRAY))\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;white-bar\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(300)\\n height(90) }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n offsetY(20) })\\n\\t })\\n\\t overlay(Overlay.source(\\n\\tSource.text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;,TextStyle(\\&quot;Helvetica\\&quot;,14))) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n offsetY(58) })\\n\\t })\\n\\t deliveryType(\\&quot;fetch\\&quot;) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(320)\\n height(400) })\\n\\t border(Border.solid(1,Color.GRAY))\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;white-bar\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(300)\\n height(90) }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n offsetY(20) })\\n\\t })\\n\\t overlay(Overlay.source(\\n\\tSource.text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;,TextStyle(\\&quot;Helvetica\\&quot;,14))) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n offsetY(58) })\\n\\t })\\n\\t deliveryType(\\&quot;fetch\\&quot;) \\n}.generate()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Kotlin&quot;,&quot;packageName&quot;:&quot;kotlin-url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;jquery&quot;,&quot;framework&quot;:&quot;jquery&quot;,&quot;language&quot;:&quot;jquery&quot;,&quot;rawCodeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;, {type: \\&quot;fetch\\&quot;, transformation: [ {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;}, {overlay: new cloudinary.Layer().publicId(\\&quot;white-bar\\&quot;), width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 20}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;), gravity: \\&quot;south\\&quot;, y: 58} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;, {type: \\&quot;fetch\\&quot;, transformation: [\\n  {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;},\\n  {overlay: new cloudinary.Layer().publicId(\\&quot;white-bar\\&quot;), width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 20},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;ROSLE%20CHEESE%20KNIVES%20%3E\\&quot;), gravity: \\&quot;south\\&quot;, y: 58}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\n  \\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;\\n)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(20)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(58)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\n  \\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg\\&quot;\\n)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(20)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;ROSLE CHEESE KNIVES &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(58)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/fetch\\\/w_320,h_400,c_fill,bo_1px_solid_gray\\\/l_white-bar,w_300,h_90,g_south,y_20\\\/l_text:Helvetica_14:ROSLE%20CHEESE%20KNIVES%20%3E,g_south,y_58\\\/https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;fetch&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;width&quot;:&quot;320&quot;,&quot;height&quot;:&quot;400&quot;,&quot;crop_mode&quot;:&quot;fill&quot;,&quot;border&quot;:&quot;1px_solid_gray&quot;},{&quot;overlay&quot;:&quot;white-bar&quot;,&quot;width&quot;:&quot;300&quot;,&quot;height&quot;:&quot;90&quot;,&quot;gravity&quot;:&quot;south&quot;,&quot;y&quot;:&quot;20&quot;},{&quot;overlay&quot;:&quot;text:Helvetica_14:ROSLE CHEESE KNIVES &gt;&quot;,&quot;gravity&quot;:&quot;south&quot;,&quot;y&quot;:&quot;58&quot;}],&quot;transformation_string&quot;:&quot;w_320,h_400,c_fill,bo_1px_solid_gray\\\/l_white-bar,w_300,h_90,g_south,y_20\\\/l_text:Helvetica_14:ROSLE CHEESE KNIVES &gt;,g_south,y_58&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/cheese_knives.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/fetch\/w_320,h_400,c_fill,bo_1px_solid_gray\/l_white-bar,w_300,h_90,g_south,y_20\/l_text:Helvetica_14:ROSLE%20CHEESE%20KNIVES%20%3E,g_south,y_58\/https:\/\/s3.amazonaws.com\/blog-images-origin\/cheese_knives.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/fetch\/w_320,h_400,c_fill,bo_1px_solid_gray\/l_white-bar,w_300,h_90,g_south,y_20\/l_text:Helvetica_14:ROSLE%20CHEESE%20KNIVES%20%3E,g_south,y_58\/https:\/\/s3.amazonaws.com\/blog-images-origin\/cheese_knives.jpg\" alt=\"Dynamic text overlay\" loading=\"lazy\" class=\"c-transformed-asset\" \/><\/a><\/p>\n<p><cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;nodejs&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;, {type: \\&quot;fetch\\&quot;, transformation: [ {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;}, {overlay: \\&quot;white-bar\\&quot;, width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 10}, {overlay: {font_family: \\&quot;Helvetica\\&quot;, font_size: 14, text: \\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;}, gravity: \\&quot;south\\&quot;, y: 48} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;, {type: \\&quot;fetch\\&quot;, transformation: [\\n  {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;},\\n  {overlay: \\&quot;white-bar\\&quot;, width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 10},\\n  {overlay: {font_family: \\&quot;Helvetica\\&quot;, font_size: 14, text: \\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;}, gravity: \\&quot;south\\&quot;, y: 48}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(10)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(48)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(10)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(48)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot; type=\\&quot;fetch\\&quot;&gt; &lt;Transformation width=\\&quot;320\\&quot; height=\\&quot;400\\&quot; border=\\&quot;1px_solid_gray\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;Transformation overlay=\\&quot;white-bar\\&quot; width=\\&quot;300\\&quot; height=\\&quot;90\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;10\\&quot; \\\/&gt; &lt;Transformation overlay={{fontFamily: \\&quot;Helvetica\\&quot;, fontSize: 14, text: \\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;}} gravity=\\&quot;south\\&quot; y=\\&quot;48\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot; type=\\&quot;fetch\\&quot;&gt;\\n\\t&lt;Transformation width=\\&quot;320\\&quot; height=\\&quot;400\\&quot; border=\\&quot;1px_solid_gray\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt;\\n\\t&lt;Transformation overlay=\\&quot;white-bar\\&quot; width=\\&quot;300\\&quot; height=\\&quot;90\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;10\\&quot; \\\/&gt;\\n\\t&lt;Transformation overlay={{fontFamily: \\&quot;Helvetica\\&quot;, fontSize: 14, text: \\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;}} gravity=\\&quot;south\\&quot; y=\\&quot;48\\&quot; \\\/&gt;\\n&lt;\\\/Image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;cloudinary-react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue_2&quot;,&quot;framework&quot;:&quot;vue_2&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(10)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(48)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(10)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(48)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot; type=\\&quot;fetch\\&quot;&gt; &lt;cld-transformation width=\\&quot;320\\&quot; height=\\&quot;400\\&quot; border=\\&quot;1px_solid_gray\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;white-bar\\&quot; width=\\&quot;300\\&quot; height=\\&quot;90\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;10\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;Helvetica&#039;, fontSize: 14, text: &#039;VITAMIX%20780%20BLENDER%20%3E&#039;}\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;48\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot; type=\\&quot;fetch\\&quot;&gt;\\n\\t&lt;cld-transformation width=\\&quot;320\\&quot; height=\\&quot;400\\&quot; border=\\&quot;1px_solid_gray\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;white-bar\\&quot; width=\\&quot;300\\&quot; height=\\&quot;90\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;10\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;Helvetica&#039;, fontSize: 14, text: &#039;VITAMIX%20780%20BLENDER%20%3E&#039;}\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;48\\&quot; \\\/&gt;\\n&lt;\\\/cld-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;cloudinary-vue&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular_2&quot;,&quot;framework&quot;:&quot;angular_2&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(10)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(48)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(10)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(48)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot; type=\\&quot;fetch\\&quot;&gt; &lt;cl-transformation width=\\&quot;320\\&quot; height=\\&quot;400\\&quot; border=\\&quot;1px_solid_gray\\&quot; crop=\\&quot;fill\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;white-bar\\&quot; width=\\&quot;300\\&quot; height=\\&quot;90\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;10\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;text:Helvetica_14:VITAMIX%20780%20BLENDER%20%3E\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;48\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot; type=\\&quot;fetch\\&quot;&gt;\\n\\t&lt;cl-transformation width=\\&quot;320\\&quot; height=\\&quot;400\\&quot; border=\\&quot;1px_solid_gray\\&quot; crop=\\&quot;fill\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;white-bar\\&quot; width=\\&quot;300\\&quot; height=\\&quot;90\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;10\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;text:Helvetica_14:VITAMIX%20780%20BLENDER%20%3E\\&quot; gravity=\\&quot;south\\&quot; y=\\&quot;48\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n&lt;\\\/cl-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/angular-5.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js_2&quot;,&quot;framework&quot;:&quot;js_2&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(10)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(48)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(10)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(48)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg&#039;, {type: \\&quot;fetch\\&quot;, transformation: [ {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;}, {overlay: new cloudinary.Layer().publicId(\\&quot;white-bar\\&quot;), width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 10}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;), gravity: \\&quot;south\\&quot;, y: 48} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg&#039;, {type: \\&quot;fetch\\&quot;, transformation: [\\n  {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;},\\n  {overlay: new cloudinary.Layer().publicId(\\&quot;white-bar\\&quot;), width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 10},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;), gravity: \\&quot;south\\&quot;, y: 48}\\n  ]}).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;).image(type=\\&quot;fetch\\&quot;, transformation=[ {&#039;width&#039;: 320, &#039;height&#039;: 400, &#039;border&#039;: \\&quot;1px_solid_gray\\&quot;, &#039;crop&#039;: \\&quot;fill\\&quot;}, {&#039;overlay&#039;: \\&quot;white-bar\\&quot;, &#039;width&#039;: 300, &#039;height&#039;: 90, &#039;gravity&#039;: \\&quot;south\\&quot;, &#039;y&#039;: 10}, {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;Helvetica\\&quot;, &#039;font_size&#039;: 14, &#039;text&#039;: \\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;}, &#039;gravity&#039;: \\&quot;south\\&quot;, &#039;y&#039;: 48} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;).image(type=\\&quot;fetch\\&quot;, transformation=[\\n  {&#039;width&#039;: 320, &#039;height&#039;: 400, &#039;border&#039;: \\&quot;1px_solid_gray\\&quot;, &#039;crop&#039;: \\&quot;fill\\&quot;},\\n  {&#039;overlay&#039;: \\&quot;white-bar\\&quot;, &#039;width&#039;: 300, &#039;height&#039;: 90, &#039;gravity&#039;: \\&quot;south\\&quot;, &#039;y&#039;: 10},\\n  {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;Helvetica\\&quot;, &#039;font_size&#039;: 14, &#039;text&#039;: \\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;}, &#039;gravity&#039;: \\&quot;south\\&quot;, &#039;y&#039;: 48}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new ImageTag(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(320)\\n-&gt;height(400))\\n\\t-&gt;border(Border::solid(1,Color::GRAY))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;white-bar\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(300)\\n-&gt;height(90)))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::south()))\\n-&gt;offsetY(10))\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;,(new TextStyle(\\&quot;Helvetica\\&quot;,14))))\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::south()))\\n-&gt;offsetY(48))\\n\\t)\\n\\t-&gt;deliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(320)\\n-&gt;height(400))\\n\\t-&gt;border(Border::solid(1,Color::GRAY))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;white-bar\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(300)\\n-&gt;height(90)))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::south()))\\n-&gt;offsetY(10))\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;,(new TextStyle(\\&quot;Helvetica\\&quot;,14))))\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::south()))\\n-&gt;offsetY(48))\\n\\t)\\n\\t-&gt;deliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;, array(\\&quot;type\\&quot;=&gt;\\&quot;fetch\\&quot;, \\&quot;transformation\\&quot;=&gt;array( array(\\&quot;width\\&quot;=&gt;320, \\&quot;height\\&quot;=&gt;400, \\&quot;border\\&quot;=&gt;\\&quot;1px_solid_gray\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&quot;), array(\\&quot;overlay\\&quot;=&gt;\\&quot;white-bar\\&quot;, \\&quot;width\\&quot;=&gt;300, \\&quot;height\\&quot;=&gt;90, \\&quot;gravity\\&quot;=&gt;\\&quot;south\\&quot;, \\&quot;y\\&quot;=&gt;10), array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;Helvetica\\&quot;, \\&quot;font_size\\&quot;=&gt;14, \\&quot;text\\&quot;=&gt;\\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;south\\&quot;, \\&quot;y\\&quot;=&gt;48) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;, array(\\&quot;type\\&quot;=&gt;\\&quot;fetch\\&quot;, \\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;width\\&quot;=&gt;320, \\&quot;height\\&quot;=&gt;400, \\&quot;border\\&quot;=&gt;\\&quot;1px_solid_gray\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&quot;),\\n  array(\\&quot;overlay\\&quot;=&gt;\\&quot;white-bar\\&quot;, \\&quot;width\\&quot;=&gt;300, \\&quot;height\\&quot;=&gt;90, \\&quot;gravity\\&quot;=&gt;\\&quot;south\\&quot;, \\&quot;y\\&quot;=&gt;10),\\n  array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;Helvetica\\&quot;, \\&quot;font_size\\&quot;=&gt;14, \\&quot;text\\&quot;=&gt;\\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;south\\&quot;, \\&quot;y\\&quot;=&gt;48)\\n  )))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().width(320).height(400).border(\\&quot;1px_solid_gray\\&quot;).crop(\\&quot;fill\\&quot;).chain() .overlay(new Layer().publicId(\\&quot;white-bar\\&quot;)).width(300).height(90).gravity(\\&quot;south\\&quot;).y(10).chain() .overlay(new TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;)).gravity(\\&quot;south\\&quot;).y(48)).type(\\&quot;fetch\\&quot;).imageTag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .width(320).height(400).border(\\&quot;1px_solid_gray\\&quot;).crop(\\&quot;fill\\&quot;).chain()\\n  .overlay(new Layer().publicId(\\&quot;white-bar\\&quot;)).width(300).height(90).gravity(\\&quot;south\\&quot;).y(10).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;)).gravity(\\&quot;south\\&quot;).y(48)).type(\\&quot;fetch\\&quot;).imageTag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;, type: \\&quot;fetch\\&quot;, transformation: [ {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;}, {overlay: \\&quot;white-bar\\&quot;, width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 10}, {overlay: {font_family: \\&quot;Helvetica\\&quot;, font_size: 14, text: \\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;}, gravity: \\&quot;south\\&quot;, y: 48} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;, type: \\&quot;fetch\\&quot;, transformation: [\\n  {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;},\\n  {overlay: \\&quot;white-bar\\&quot;, width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 10},\\n  {overlay: {font_family: \\&quot;Helvetica\\&quot;, font_size: 14, text: \\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;}, gravity: \\&quot;south\\&quot;, y: 48}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(320).Height(400).Border(\\&quot;1px_solid_gray\\&quot;).Crop(\\&quot;fill\\&quot;).Chain() .Overlay(new Layer().PublicId(\\&quot;white-bar\\&quot;)).Width(300).Height(90).Gravity(\\&quot;south\\&quot;).Y(10).Chain() .Overlay(new TextLayer().FontFamily(\\&quot;Helvetica\\&quot;).FontSize(14).Text(\\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;)).Gravity(\\&quot;south\\&quot;).Y(48)).Action(\\&quot;fetch\\&quot;).BuildImageTag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Width(320).Height(400).Border(\\&quot;1px_solid_gray\\&quot;).Crop(\\&quot;fill\\&quot;).Chain()\\n  .Overlay(new Layer().PublicId(\\&quot;white-bar\\&quot;)).Width(300).Height(90).Gravity(\\&quot;south\\&quot;).Y(10).Chain()\\n  .Overlay(new TextLayer().FontFamily(\\&quot;Helvetica\\&quot;).FontSize(14).Text(\\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;)).Gravity(\\&quot;south\\&quot;).Y(48)).Action(\\&quot;fetch\\&quot;).BuildImageTag(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;dart&quot;,&quot;framework&quot;:&quot;dart&quot;,&quot;language&quot;:&quot;dart&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_320,h_400,c_fill,bo_1px_solid_gray\\\/l_white-bar,w_300,h_90,g_south,y_10\\\/l_text:Helvetica_14:VITAMIX 780 BLENDER &gt;,g_south,y_48\\&quot;)\\n\\t.setDeliveryType(\\&quot;fetch\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_320,h_400,c_fill,bo_1px_solid_gray\\\/l_white-bar,w_300,h_90,g_south,y_10\\\/l_text:Helvetica_14:VITAMIX 780 BLENDER &gt;,g_south,y_48\\&quot;)\\n\\t.setDeliveryType(\\&quot;fetch\\&quot;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setType( \\&quot;fetch\\&quot;).setTransformation(CLDTransformation().setWidth(320).setHeight(400).setBorder(\\&quot;1px_solid_gray\\&quot;).setCrop(\\&quot;fill\\&quot;).chain() .setOverlay(\\&quot;white-bar\\&quot;).setWidth(300).setHeight(90).setGravity(\\&quot;south\\&quot;).setY(10).chain() .setOverlay(\\&quot;text:Helvetica_14:VITAMIX%20780%20BLENDER%20%3E\\&quot;).setGravity(\\&quot;south\\&quot;).setY(48)).generate(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setType( \\&quot;fetch\\&quot;).setTransformation(CLDTransformation()\\n  .setWidth(320).setHeight(400).setBorder(\\&quot;1px_solid_gray\\&quot;).setCrop(\\&quot;fill\\&quot;).chain()\\n  .setOverlay(\\&quot;white-bar\\&quot;).setWidth(300).setHeight(90).setGravity(\\&quot;south\\&quot;).setY(10).chain()\\n  .setOverlay(\\&quot;text:Helvetica_14:VITAMIX%20780%20BLENDER%20%3E\\&quot;).setGravity(\\&quot;south\\&quot;).setY(48)).generate(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().width(320).height(400).border(\\&quot;1px_solid_gray\\&quot;).crop(\\&quot;fill\\&quot;).chain() .overlay(new Layer().publicId(\\&quot;white-bar\\&quot;)).width(300).height(90).gravity(\\&quot;south\\&quot;).y(10).chain() .overlay(new TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;)).gravity(\\&quot;south\\&quot;).y(48)).type(\\&quot;fetch\\&quot;).generate(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .width(320).height(400).border(\\&quot;1px_solid_gray\\&quot;).crop(\\&quot;fill\\&quot;).chain()\\n  .overlay(new Layer().publicId(\\&quot;white-bar\\&quot;)).width(300).height(90).gravity(\\&quot;south\\&quot;).y(10).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;)).gravity(\\&quot;south\\&quot;).y(48)).type(\\&quot;fetch\\&quot;).generate(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Android&quot;,&quot;packageName&quot;:&quot;cloudinary-android&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;flutter&quot;,&quot;framework&quot;:&quot;flutter&quot;,&quot;language&quot;:&quot;flutter&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_320,h_400,c_fill,bo_1px_solid_gray\\\/l_white-bar,w_300,h_90,g_south,y_10\\\/l_text:Helvetica_14:VITAMIX 780 BLENDER &gt;,g_south,y_48\\&quot;)\\n\\t.setDeliveryType(\\&quot;fetch\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_320,h_400,c_fill,bo_1px_solid_gray\\\/l_white-bar,w_300,h_90,g_south,y_10\\\/l_text:Helvetica_14:VITAMIX 780 BLENDER &gt;,g_south,y_48\\&quot;)\\n\\t.setDeliveryType(\\&quot;fetch\\&quot;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Flutter&quot;,&quot;packageName&quot;:&quot;cloudinary_flutter&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;kotlin&quot;,&quot;framework&quot;:&quot;kotlin&quot;,&quot;language&quot;:&quot;kotlin&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(320)\\n height(400) })\\n\\t border(Border.solid(1,Color.GRAY))\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;white-bar\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(300)\\n height(90) }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n offsetY(10) })\\n\\t })\\n\\t overlay(Overlay.source(\\n\\tSource.text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;,TextStyle(\\&quot;Helvetica\\&quot;,14))) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n offsetY(48) })\\n\\t })\\n\\t deliveryType(\\&quot;fetch\\&quot;) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(320)\\n height(400) })\\n\\t border(Border.solid(1,Color.GRAY))\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;white-bar\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(300)\\n height(90) }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n offsetY(10) })\\n\\t })\\n\\t overlay(Overlay.source(\\n\\tSource.text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;,TextStyle(\\&quot;Helvetica\\&quot;,14))) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n offsetY(48) })\\n\\t })\\n\\t deliveryType(\\&quot;fetch\\&quot;) \\n}.generate()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Kotlin&quot;,&quot;packageName&quot;:&quot;kotlin-url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;jquery&quot;,&quot;framework&quot;:&quot;jquery&quot;,&quot;language&quot;:&quot;jquery&quot;,&quot;rawCodeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;, {type: \\&quot;fetch\\&quot;, transformation: [ {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;}, {overlay: new cloudinary.Layer().publicId(\\&quot;white-bar\\&quot;), width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 10}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;), gravity: \\&quot;south\\&quot;, y: 48} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;, {type: \\&quot;fetch\\&quot;, transformation: [\\n  {width: 320, height: 400, border: \\&quot;1px_solid_gray\\&quot;, crop: \\&quot;fill\\&quot;},\\n  {overlay: new cloudinary.Layer().publicId(\\&quot;white-bar\\&quot;), width: 300, height: 90, gravity: \\&quot;south\\&quot;, y: 10},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;Helvetica\\&quot;).fontSize(14).text(\\&quot;VITAMIX%20780%20BLENDER%20%3E\\&quot;), gravity: \\&quot;south\\&quot;, y: 48}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(10)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(48)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg\\&quot;)\\n  .resize(fill().width(320).height(400))\\n  .border(solid(1, \\&quot;gray\\&quot;))\\n  .overlay(\\n    source(\\n      image(\\&quot;white-bar\\&quot;).transformation(\\n        new Transformation().resize(scale().width(300).height(90))\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(10)\\n    )\\n  )\\n  .overlay(\\n    source(\\n      text(\\&quot;VITAMIX 780 BLENDER &gt;\\&quot;, new TextStyle(\\&quot;Helvetica\\&quot;, 14))\\n    ).position(\\n      new Position()\\n        .gravity(compass(\\&quot;south\\&quot;))\\n        .offsetY(48)\\n    )\\n  )\\n  .setDeliveryType(\\&quot;fetch\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/fetch\\\/w_320,h_400,c_fill,bo_1px_solid_gray\\\/l_white-bar,w_300,h_90,g_south,y_10\\\/l_text:Helvetica_14:VITAMIX%20780%20BLENDER%20%3E,g_south,y_48\\\/https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;fetch&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;width&quot;:&quot;320&quot;,&quot;height&quot;:&quot;400&quot;,&quot;crop_mode&quot;:&quot;fill&quot;,&quot;border&quot;:&quot;1px_solid_gray&quot;},{&quot;overlay&quot;:&quot;white-bar&quot;,&quot;width&quot;:&quot;300&quot;,&quot;height&quot;:&quot;90&quot;,&quot;gravity&quot;:&quot;south&quot;,&quot;y&quot;:&quot;10&quot;},{&quot;overlay&quot;:&quot;text:Helvetica_14:VITAMIX 780 BLENDER &gt;&quot;,&quot;gravity&quot;:&quot;south&quot;,&quot;y&quot;:&quot;48&quot;}],&quot;transformation_string&quot;:&quot;w_320,h_400,c_fill,bo_1px_solid_gray\\\/l_white-bar,w_300,h_90,g_south,y_10\\\/l_text:Helvetica_14:VITAMIX 780 BLENDER &gt;,g_south,y_48&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;https:\\\/\\\/s3.amazonaws.com\\\/blog-images-origin\\\/blender.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/fetch\/w_320,h_400,c_fill,bo_1px_solid_gray\/l_white-bar,w_300,h_90,g_south,y_10\/l_text:Helvetica_14:VITAMIX%20780%20BLENDER%20%3E,g_south,y_48\/https:\/\/s3.amazonaws.com\/blog-images-origin\/blender.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/fetch\/w_320,h_400,c_fill,bo_1px_solid_gray\/l_white-bar,w_300,h_90,g_south,y_10\/l_text:Helvetica_14:VITAMIX%20780%20BLENDER%20%3E,g_south,y_48\/https:\/\/s3.amazonaws.com\/blog-images-origin\/blender.jpg\" alt=\"Alternative text overlay\" loading=\"lazy\" class=\"c-transformed-asset\" \/><\/a><\/p>\n<p>Let\u2019s take a look at what\u2019s going on here a bit more closely. There are really two key parts to the URL. What the background image should be, denoted by<\/p>\n<p><code>'https:\/\/res.cloudinary.com\/demo\/image\/fetch\/https:\/\/s3.amazonaws.com\/blog-images-origin\/cheese_knives.jpg'<\/code>.<\/p>\n<p>And what the text block should say, denoted by <code>'l_text:Helvetica_14:ROSLE CHEESE KNIVES '<\/code>.<\/p>\n<p>All the other parameters define the size of the image, the text style, and things like that.<\/p>\n<p>You can read up about all of our on the fly image (and video!) transformations in our<a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations\"> documentation<\/a>.<\/p>\n<p>You can play with this yourself, use this widget to build your own images!<\/p>\n<style>\n#demoContainer  {\n    margin:15px 0;\n    padding: 10px;\n    width:100%;\n    border:2px solid #ddd;\n}\n#demoContainer:after {\n    clear: both;\n    display: block;  \n    content: '';\n}\n#createImage {\n    background-color: #db631e;\n    border: medium none;\n    border-radius: 3px;\n    color: #fff;\n    font-size: 18px;\n    font-weight: bold;\n    height: 36px;\n    line-height: 24px;\n    width: 150px;\n    margin:15px 0;\n}\n#DemoInputContainer  {\n    width:360px;\n    height:auto;\n    float:left;\n    margin: 0 20px 0 0;\n}\n#imageDemoContainer  {\n    float:left;\n}\n#imageTextOverlay, #imageBg {\n    border: 1px solid #888;\n    border-radius: 5px;\n    height: 37px;\n    line-height: 20px;\n    padding: 5px;\n    width: 100%;\n}\n#DemoInputContainer label  {\n    width:100%;\n    clear:both;\n    text-align:left;\n    margin:15px 0 0;\n}\np#generatedURL  {\n    font-size: 12px;\n    line-height: 18px;\n    word-break: break-all;\n}\n<\/style>\n<script>\nfunction buildImage(){\n    var text = document.getElementById('imageTextOverlay').value,\n    bgImage = document.getElementById('imageBg').value;\n    newImage(text,bgImage);\n}\nfunction newImage(x,y){\n    var imageText = x,\n    imageURL = y;\n    var newImageURL = 'https:\/\/res.cloudinary.com\/demo\/image\/fetch\/d_NotFound.jpg\/w_320,h_400,c_fill,bo_1px_solid_gray\/l_white-bar,w_300,h_90,g_south,y_20\/l_text:Helvetica_14:'+imageText+',g_south,y_58,w_280,c_fit\/'+imageURL;\n    img = new Image();\n    img.id = \"testImage\";\n    if (!document.getElementById('testImage')){\n        img.src = newImageURL;\n        document.getElementById('imageDemoContainer').appendChild(img);\n    }\n    else {\n        document.getElementById('testImage').src=newImageURL;\n    }\n    document.getElementById('generatedURL').innerHTML = newImageURL;\n}\n<\/script>\n<div id=\"demoContainer\">\n    <div id=\"DemoInputContainer\">\n        <label for=\"imageTextOverlay\">Image Text:<\/label>\n        <input type=\"text\" name=\"imageTextOverlay\" id=\"imageTextOverlay\" \/>\n        <label for=\"imageBg\">Background Image URL (inlcude full url):<\/label>\n        <input type=\"text\" name=\"imageBg\" id=\"imageBg\" \/>\n        <input type=\"button\" id=\"createImage\" value=\"Create Image\" onclick=\"buildImage()\"\/>\n        <p>Generated Image URL:<\/p>\n        <p id=\"generatedURL\"><\/p>\n    <\/div>\n    <div id=\"imageDemoContainer\"><\/div>\n<\/div>  \n<p>Changing only those two parameters in the image url allows you to build an image for ANY product (or banner\/hero image\/whatever you can dream up) on the fly. The only thing you need to do is track the last product (or page\/category\/article\/etc) your visitor viewed and dynamically replace the values in the image URL. This is simple enough to do with any Optimization tool (Maxymiser, Optimizely, Adobe Target), and even some Tag Management Systems (Ensighten, Adobe DTM).<\/p>\n<p>We\u2019re truly talking about 1:1 personalization here with only a single URL. Also, I don\u2019t even have to go through the work of uploading my images, as Cloudinary can automatically pull in your current images, transform them as you see fit, and place them out across the CDN using our <a href=\"https:\/\/cloudinary.com\/documentation\/fetch_remote_images\">\u2018fetch\u2019 functionality<\/a> used in the examples above.<\/p>\n<p>The same ideas can be applied to other areas as well: site banners, creative emails, display ads, as well as managing all of your site\u2019s assets (which we do for <a href=\"https:\/\/cloudinary.com\/customers\">thousands of customers<\/a>). There is also a WYSIWYG image editor in the UI:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary\/image\/upload\/w_650\/creative_post_media_library_screenshot.jpg\" alt=\"Media library\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"650\" height=\"362\"\/><\/p>\n<p>Cloudinary automatically places all images on a worldwide CDN for extremely fast performance, alongside image quality optimization and dynamic image formatting to reduce bandwidth and speed up your site\u2019s load time.<\/p>\n<h3>Conclusion<\/h3>\n<p>Using Cloudinary for your A\/B Testing and Personalization program can help you reduce your exposure to creative bottlenecks, accelerate the number of tests you can do, and open up new possibilities. With Cloudinary you can dynamically resize images and videos, overlay custom text and other images\/videos on top of them, add filters, change colors, create on the fly banners, and much more. In order to test this out for yourself, sign up for a free account <a href=\"https:\/\/cloudinary.com\/users\/register_free\">here<\/a>.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":21333,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[25,165],"class_list":["post-21332","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-asset-management","tag-image-transformation"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Build A\/B Testing &amp; Personalization creative on the fly<\/title>\n<meta name=\"description\" content=\"Enhance your site&#039;s content optimization and personalization using dynamic image URLs with on-the-fly transformation\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building creative content on the fly for A\/B testing and 1:1 personalization\" \/>\n<meta property=\"og:description\" content=\"Enhance your site&#039;s content optimization and personalization using dynamic image URLs with on-the-fly transformation\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-11-25T14:17:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-03T20:19:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649724921\/Web_Assets\/blog\/creative_personalization_post\/creative_personalization_post-png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"141\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Building creative content on the fly for A\/B testing and 1:1 personalization\",\"datePublished\":\"2015-11-25T14:17:38+00:00\",\"dateModified\":\"2024-06-03T20:19:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization\"},\"wordCount\":12,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724921\/Web_Assets\/blog\/creative_personalization_post\/creative_personalization_post.png?_i=AA\",\"keywords\":[\"Asset Management\",\"Image Transformation\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2015\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization\",\"url\":\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization\",\"name\":\"Build A\/B Testing & Personalization creative on the fly\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724921\/Web_Assets\/blog\/creative_personalization_post\/creative_personalization_post.png?_i=AA\",\"datePublished\":\"2015-11-25T14:17:38+00:00\",\"dateModified\":\"2024-06-03T20:19:32+00:00\",\"description\":\"Enhance your site's content optimization and personalization using dynamic image URLs with on-the-fly transformation\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724921\/Web_Assets\/blog\/creative_personalization_post\/creative_personalization_post.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724921\/Web_Assets\/blog\/creative_personalization_post\/creative_personalization_post.png?_i=AA\",\"width\":300,\"height\":141},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building creative content on the fly for A\/B testing and 1:1 personalization\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Build A\/B Testing & Personalization creative on the fly","description":"Enhance your site's content optimization and personalization using dynamic image URLs with on-the-fly transformation","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:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization","og_locale":"en_US","og_type":"article","og_title":"Building creative content on the fly for A\/B testing and 1:1 personalization","og_description":"Enhance your site's content optimization and personalization using dynamic image URLs with on-the-fly transformation","og_url":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization","og_site_name":"Cloudinary Blog","article_published_time":"2015-11-25T14:17:38+00:00","article_modified_time":"2024-06-03T20:19:32+00:00","og_image":[{"width":300,"height":141,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649724921\/Web_Assets\/blog\/creative_personalization_post\/creative_personalization_post-png?_i=AA","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization"},"author":{"name":"","@id":""},"headline":"Building creative content on the fly for A\/B testing and 1:1 personalization","datePublished":"2015-11-25T14:17:38+00:00","dateModified":"2024-06-03T20:19:32+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization"},"wordCount":12,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724921\/Web_Assets\/blog\/creative_personalization_post\/creative_personalization_post.png?_i=AA","keywords":["Asset Management","Image Transformation"],"inLanguage":"en-US","copyrightYear":"2015","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization","url":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization","name":"Build A\/B Testing & Personalization creative on the fly","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724921\/Web_Assets\/blog\/creative_personalization_post\/creative_personalization_post.png?_i=AA","datePublished":"2015-11-25T14:17:38+00:00","dateModified":"2024-06-03T20:19:32+00:00","description":"Enhance your site's content optimization and personalization using dynamic image URLs with on-the-fly transformation","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724921\/Web_Assets\/blog\/creative_personalization_post\/creative_personalization_post.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724921\/Web_Assets\/blog\/creative_personalization_post\/creative_personalization_post.png?_i=AA","width":300,"height":141},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/building_creative_content_on_the_fly_for_a_b_testing_and_1_1_personalization#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Building creative content on the fly for A\/B testing and 1:1 personalization"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":""}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724921\/Web_Assets\/blog\/creative_personalization_post\/creative_personalization_post.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=21332"}],"version-history":[{"count":1,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21332\/revisions"}],"predecessor-version":[{"id":34333,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21332\/revisions\/34333"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/21333"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=21332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=21332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=21332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}