{"id":21352,"date":"2016-02-03T14:26:55","date_gmt":"2016-02-03T14:26:55","guid":{"rendered":"http:\/\/automatically_art_directed_responsive_images"},"modified":"2025-08-21T12:19:43","modified_gmt":"2025-08-21T19:19:43","slug":"automatically_art_directed_responsive_images","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images","title":{"rendered":"Automatically art-directed responsive images with Cloudinary"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p><a href=\"https:\/\/cloudinary.com\/blog\/responsive_images_with_srcset_sizes_and_cloudinary\">Previously<\/a>, we saw how to mark up performant, adaptable <code>&lt;img&gt;<\/code>s using <code>srcset<\/code> and <code>sizes<\/code> in conjunction with Cloudinary\u2019s image transformations.<\/p>\n<p>How far can we push that notion of \u201cadaptability\u201d? Last time, we learned how to offer up an image at a range of different resolutions. This allowed us to send large resources to large screens and small resources to small ones. We used <code>srcset<\/code> and <code>sizes<\/code> to adapt for <em>performance<\/em>. But <em>visually<\/em>, our images remained fixed.<\/p>\n<p>What if we could go a step further and adapt our image\u2019s visual characteristics at <a href=\"https:\/\/cloudinary.com\/blog\/make_all_images_on_your_website_responsive_in_3_easy_steps\">breakpoints<\/a>, just like we adapt our pages\u2019 layouts? The term for this sort of adaptation is art direction. In this article, we\u2019ll create an art-directed front page for our example site:<\/p>\n<p><strong><a href=\"https:\/\/ericportis.com\/etc\/cloudinary\/\">https:\/\/ericportis.com\/etc\/cloudinary\/<\/a><\/strong><\/p>\n<p>The lead article\u2019s preview image on this front page is <em>huge<\/em>, spanning the entire width of the page. On wide screens, in order to keep it from pushing the rest of the content \u201cbelow the fold\u201d, we need to crop it. Like this:<\/p>\n<video controls autoplay loop poster=\"https:\/\/res.cloudinary.com\/eeeps\/video\/upload\/w_770\/hero-flow.jpg\">\n\t<source src=\"https:\/\/res.cloudinary.com\/eeeps\/video\/upload\/w_770\/hero-flow.mp4\" type=\"video\/mp4\" \/>\n\t<source src=\"https:\/\/res.cloudinary.com\/eeeps\/video\/upload\/w_770\/hero-flow.webm\" type=\"video\/webm\" \/>\n\tHero image cropping and shortening at breakpoints\n<\/video>\n<p>The rest of the image previews? They have the opposite problem. Left to simply shrink along with a narrowing viewport, they\u2019d become too small to really make out. So on small screens, we want to \u201czoom in\u201d on their subjects.<\/p>\n<video controls autoplay loop poster=\"https:\/\/res.cloudinary.com\/eeeps\/video\/upload\/w_770\/thumbnail-flow.jpg\">\n\t<source src=\"https:\/\/res.cloudinary.com\/eeeps\/video\/upload\/w_770\/thumbnail-flow.mp4\" type=\"video\/mp4\" \/>\n\t<source src=\"https:\/\/res.cloudinary.com\/eeeps\/video\/upload\/w_770\/thumbnail-flow.webm\" type=\"video\/webm\" \/>\n\tThumbnails cropping and zooming at a breakpoint\n<\/video>\n<p>How can we achieve these things in markup? With a new element:<\/p>\n<h2>The picture element<\/h2>\n<p>The <code>&lt;picture&gt;<\/code> element was <a href=\"https:\/\/www.w3.org\/html\/wg\/drafts\/html\/master\/semantics.html#the-picture-element\">added to the HTML specification last year<\/a> and <a href=\"http:\/\/caniuse.com\/#feat=picture\">has been implemented in every major desktop browser except for Safari<\/a> (Safari support is <a href=\"https:\/\/twitter.com\/webkit\/status\/686657179365945344\">right around the corner<\/a>). <code>&lt;picture&gt;<\/code> gives us a way to supply alternate, <em>visually distinct<\/em> versions of an image, and switch them out at breakpoints.<\/p>\n<p>The first thing to know about <code>&lt;picture&gt;<\/code> is that it\u2019s a wrapper for <code>&lt;img&gt;<\/code>; think of <code>&lt;picture&gt;<\/code> as a kind of invisible, magical <code>&lt;span&gt;<\/code> which can feed its <code>&lt;img&gt;<\/code> alternate sources.<\/p>\n<p>The second thing to know about it is that its markup pattern was adapted from <code>&lt;audio&gt;<\/code> and <code>&lt;video&gt;<\/code>. So alongside our <code>&lt;img&gt;<\/code>, we\u2019ll pack our <code>&lt;picture&gt;<\/code> full of <code>&lt;source&gt;<\/code> elements.<\/p>\n<p>Each <code>&lt;source&gt;<\/code> represents a visually distinct version of the image. We tell the browser which <code>&lt;source&gt;<\/code> to use and when, using <code>media<\/code> attributes.<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">picture<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">source<\/span> <span class=\"hljs-attr\">media<\/span>=<span class=\"hljs-string\">\"(min-width: 800px)\"<\/span>\n      <span class=\"hljs-attr\">sizes<\/span>=<span class=\"hljs-string\">\"100vw\"<\/span>\n      <span class=\"hljs-attr\">srcset<\/span>=<span class=\"hljs-string\">\"cropped-for-wide-screens--large.jpg 1600w,\n              cropped-for-wide-screens--small.jpg 800w\"<\/span> \/&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">source<\/span> <span class=\"hljs-attr\">media<\/span>=<span class=\"hljs-string\">\"(min-width: 600px)\"<\/span>\n      <span class=\"hljs-attr\">sizes<\/span>=<span class=\"hljs-string\">\"100vw\"<\/span>\n      <span class=\"hljs-attr\">srcset<\/span>=<span class=\"hljs-string\">\"full-image-for-standard-screens--large.jpg 1200w,\n              full-image-for-standard-screens--small.jpg  600w\"<\/span> \/&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">img<\/span>\n    <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"zoomed-in-for-small-screens--small.jpg\"<\/span>\n    <span class=\"hljs-attr\">srcset<\/span>=<span class=\"hljs-string\">\"zoomed-in-for-small-screens--large.jpg 800w,\n            zoomed-in-for-small-screens--small.jpg 400w\"<\/span>\n    <span class=\"hljs-attr\">alt<\/span> \/&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">picture<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p>The first <code>&lt;source&gt;<\/code> element whose <code>media<\/code> attribute matches the current environment wins. The browser picks a resource out of that <code>&lt;source&gt;<\/code>\u2019s <code>srcset<\/code>\/<code>sizes<\/code> pair and feeds the picked resource to the <code>&lt;img&gt;<\/code>.<\/p>\n<p><em>Et voila!<\/em> An image that can change its appearance at breakpoints, as you can see in the examples above.<\/p>\n<p>But dog-gone-it, we\u2019ve done it again \u2014 by adding a new dimension of adaptability, we\u2019ve multiplied the number of image resources we need to create and manage, making something that was once simple and static, dynamic and complex.<\/p>\n<p>Cloudinary provides us with tools to manage that complexity.<\/p>\n<h2>Automatic cropping<\/h2>\n<p>A few months ago, I sat on on a stage at SmashingConf Freiburg, and <a href=\"https:\/\/www.christianheilmann.com\/\">Christian Heilmann<\/a> asked me how, or if, one could automate the process of cropping in on the most important parts of an image. Stumped, I replied, \u201cI don\u2019t know, uh, something something neural networks?\u201d<\/p>\n<p>Right after my talk, <a href=\"https:\/\/www.guypo.com\/\">Guy Podjarmy<\/a> whisked me aside and showed me a few of Cloudinary\u2019s auto-cropping features. I was amazed; now I get to show them to you!<\/p>\n<p>First things first: in order to crop using Cloudinary, you need to specify a \u201c<a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations#crop_modes\">crop mode<\/a>\u201d. We\u2019ll start out by using the <code>fill<\/code> crop mode (<code>c_fill<\/code> in URLs), which works like <code>background-fit: cover<\/code> in CSS. The original image will be stretched or shrunk to cover the entirety of its new box, with any extra bits lopped off.<\/p>\n<p>Let\u2019s say we want to create a 100\u00d7100 square crop of our example image. Here\u2019s how we\u2019d do it:<\/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;on_the_phone.jpg\\&quot;, {width: 100, height: 100, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {width: 100, height: 100, crop: \\&quot;fill\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(fill().width(100).height(100));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(fill().width(100).height(100));&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;on_the_phone.jpg\\&quot; &gt; &lt;Transformation width=\\&quot;100\\&quot; height=\\&quot;100\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;Transformation width=\\&quot;100\\&quot; height=\\&quot;100\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(fill().width(100).height(100));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(fill().width(100).height(100));&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;on_the_phone.jpg\\&quot; &gt; &lt;cld-transformation width=\\&quot;100\\&quot; height=\\&quot;100\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation width=\\&quot;100\\&quot; height=\\&quot;100\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(fill().width(100).height(100));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(fill().width(100).height(100));&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;on_the_phone.jpg\\&quot; &gt; &lt;cl-transformation width=\\&quot;100\\&quot; height=\\&quot;100\\&quot; crop=\\&quot;fill\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation width=\\&quot;100\\&quot; height=\\&quot;100\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(fill().width(100).height(100));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(fill().width(100).height(100));&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;on_the_phone.jpg&#039;, {width: 100, height: 100, crop: \\&quot;fill\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;on_the_phone.jpg&#039;, {width: 100, height: 100, crop: \\&quot;fill\\&quot;}).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;on_the_phone.jpg\\&quot;).image(width=100, height=100, crop=\\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).image(width=100, height=100, crop=\\&quot;fill\\&quot;)&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;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(100)\\n-&gt;height(100));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(100)\\n-&gt;height(100));&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;on_the_phone.jpg\\&quot;, array(\\&quot;width\\&quot;=&gt;100, \\&quot;height\\&quot;=&gt;100, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, array(\\&quot;width\\&quot;=&gt;100, \\&quot;height\\&quot;=&gt;100, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&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;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(100).height(100).crop(\\&quot;fill\\&quot;)).imageTag(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().width(100).height(100).crop(\\&quot;fill\\&quot;)).imageTag(\\&quot;on_the_phone.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;on_the_phone.jpg\\&quot;, width: 100, height: 100, crop: \\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, width: 100, height: 100, crop: \\&quot;fill\\&quot;)&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(100).Height(100).Crop(\\&quot;fill\\&quot;)).BuildImageTag(\\&quot;on_the_phone.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(100).Height(100).Crop(\\&quot;fill\\&quot;)).BuildImageTag(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(100)\\n.height(100)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(100)\\n.height(100)));&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().setTransformation(CLDTransformation().setWidth(100).setHeight(100).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setWidth(100).setHeight(100).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.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(100).height(100).crop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().width(100).height(100).crop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(100)\\n.height(100)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(100)\\n.height(100)));&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;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(100)\\n height(100) }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(100)\\n height(100) }) \\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;on_the_phone.jpg\\&quot;, {width: 100, height: 100, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {width: 100, height: 100, crop: \\&quot;fill\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(fill().width(100).height(100));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(fill().width(100).height(100));&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\\\/eeeps\\\/image\\\/upload\\\/c_fill,w_100,h_100\\\/on_the_phone.jpg&quot;,&quot;cloud_name&quot;:&quot;eeeps&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;fill&quot;,&quot;width&quot;:&quot;100&quot;,&quot;height&quot;:&quot;100&quot;}],&quot;transformation_string&quot;:&quot;c_fill,w_100,h_100&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;on_the_phone.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><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_fill,w_100,h_100\/on_the_phone.jpg\" alt=\"100x100 square image crop\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"100\" height=\"100\"\/><\/p>\n<p>How about a 640\u00d7360 version?<\/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;on_the_phone.jpg\\&quot;, {width: 640, height: 360, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {width: 640, height: 360, crop: \\&quot;fill\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(fill().width(640).height(360));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(fill().width(640).height(360));&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;on_the_phone.jpg\\&quot; &gt; &lt;Transformation width=\\&quot;640\\&quot; height=\\&quot;360\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;Transformation width=\\&quot;640\\&quot; height=\\&quot;360\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(fill().width(640).height(360));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(fill().width(640).height(360));&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;on_the_phone.jpg\\&quot; &gt; &lt;cld-transformation width=\\&quot;640\\&quot; height=\\&quot;360\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation width=\\&quot;640\\&quot; height=\\&quot;360\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(fill().width(640).height(360));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(fill().width(640).height(360));&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;on_the_phone.jpg\\&quot; &gt; &lt;cl-transformation width=\\&quot;640\\&quot; height=\\&quot;360\\&quot; crop=\\&quot;fill\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation width=\\&quot;640\\&quot; height=\\&quot;360\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(fill().width(640).height(360));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(fill().width(640).height(360));&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;on_the_phone.jpg&#039;, {width: 640, height: 360, crop: \\&quot;fill\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;on_the_phone.jpg&#039;, {width: 640, height: 360, crop: \\&quot;fill\\&quot;}).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;on_the_phone.jpg\\&quot;).image(width=640, height=360, crop=\\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).image(width=640, height=360, crop=\\&quot;fill\\&quot;)&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;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(640)\\n-&gt;height(360));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(640)\\n-&gt;height(360));&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;on_the_phone.jpg\\&quot;, array(\\&quot;width\\&quot;=&gt;640, \\&quot;height\\&quot;=&gt;360, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, array(\\&quot;width\\&quot;=&gt;640, \\&quot;height\\&quot;=&gt;360, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&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;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(640).height(360).crop(\\&quot;fill\\&quot;)).imageTag(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().width(640).height(360).crop(\\&quot;fill\\&quot;)).imageTag(\\&quot;on_the_phone.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;on_the_phone.jpg\\&quot;, width: 640, height: 360, crop: \\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, width: 640, height: 360, crop: \\&quot;fill\\&quot;)&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(640).Height(360).Crop(\\&quot;fill\\&quot;)).BuildImageTag(\\&quot;on_the_phone.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(640).Height(360).Crop(\\&quot;fill\\&quot;)).BuildImageTag(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.height(360)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.height(360)));&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().setTransformation(CLDTransformation().setWidth(640).setHeight(360).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setWidth(640).setHeight(360).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.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(640).height(360).crop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().width(640).height(360).crop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.height(360)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.height(360)));&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;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(640)\\n height(360) }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(640)\\n height(360) }) \\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;on_the_phone.jpg\\&quot;, {width: 640, height: 360, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {width: 640, height: 360, crop: \\&quot;fill\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(fill().width(640).height(360));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(fill().width(640).height(360));&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\\\/eeeps\\\/image\\\/upload\\\/c_fill,w_640,h_360\\\/on_the_phone.jpg&quot;,&quot;cloud_name&quot;:&quot;eeeps&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;fill&quot;,&quot;width&quot;:&quot;640&quot;,&quot;height&quot;:&quot;360&quot;}],&quot;transformation_string&quot;:&quot;c_fill,w_640,h_360&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;on_the_phone.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><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_fill,w_640,h_360\/on_the_phone.jpg\" alt=\"640x360 cropped image\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"640\" height=\"360\"\/><\/p>\n<p>In addition to providing heights and widths, Cloudinary lets us supply aspect ratios, which can make our URLs a bit easier to read. This URL returns an image identical to the previous one:<\/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;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;16:9\\&quot;, width: 640, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;16:9\\&quot;, width: 640, crop: \\&quot;fill\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(ar16X9())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(ar16X9())\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;Transformation aspectRatio=\\&quot;16:9\\&quot; width=\\&quot;640\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;Transformation aspectRatio=\\&quot;16:9\\&quot; width=\\&quot;640\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(ar16X9())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(ar16X9())\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cld-transformation aspect-ratio=\\&quot;16:9\\&quot; width=\\&quot;640\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation aspect-ratio=\\&quot;16:9\\&quot; width=\\&quot;640\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(ar16X9())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(ar16X9())\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cl-transformation aspect-ratio=\\&quot;16:9\\&quot; width=\\&quot;640\\&quot; crop=\\&quot;fill\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation aspect-ratio=\\&quot;16:9\\&quot; width=\\&quot;640\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(ar16X9())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(ar16X9())\\n);&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;on_the_phone.jpg&#039;, {aspectRatio: \\&quot;16:9\\&quot;, width: 640, crop: \\&quot;fill\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;on_the_phone.jpg&#039;, {aspectRatio: \\&quot;16:9\\&quot;, width: 640, crop: \\&quot;fill\\&quot;}).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;on_the_phone.jpg\\&quot;).image(aspect_ratio=\\&quot;16:9\\&quot;, width=640, crop=\\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).image(aspect_ratio=\\&quot;16:9\\&quot;, width=640, crop=\\&quot;fill\\&quot;)&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;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(640)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar16X9())\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(640)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar16X9())\\n\\t);&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;on_the_phone.jpg\\&quot;, array(\\&quot;aspect_ratio\\&quot;=&gt;\\&quot;16:9\\&quot;, \\&quot;width\\&quot;=&gt;640, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, array(\\&quot;aspect_ratio\\&quot;=&gt;\\&quot;16:9\\&quot;, \\&quot;width\\&quot;=&gt;640, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&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;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().aspectRatio(\\&quot;16:9\\&quot;).width(640).crop(\\&quot;fill\\&quot;)).imageTag(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().aspectRatio(\\&quot;16:9\\&quot;).width(640).crop(\\&quot;fill\\&quot;)).imageTag(\\&quot;on_the_phone.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;on_the_phone.jpg\\&quot;, aspect_ratio: \\&quot;16:9\\&quot;, width: 640, crop: \\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, aspect_ratio: \\&quot;16:9\\&quot;, width: 640, crop: \\&quot;fill\\&quot;)&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().AspectRatio(\\&quot;16:9\\&quot;).Width(640).Crop(\\&quot;fill\\&quot;)).BuildImageTag(\\&quot;on_the_phone.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().AspectRatio(\\&quot;16:9\\&quot;).Width(640).Crop(\\&quot;fill\\&quot;)).BuildImageTag(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar16X9())\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar16X9())\\n\\t));&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().setTransformation(CLDTransformation().setAspectRatio(\\&quot;16:9\\&quot;).setWidth(640).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setAspectRatio(\\&quot;16:9\\&quot;).setWidth(640).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.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().aspectRatio(\\&quot;16:9\\&quot;).width(640).crop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().aspectRatio(\\&quot;16:9\\&quot;).width(640).crop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar16X9())\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar16X9())\\n\\t));&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;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(640)\\n\\t aspectRatio(\\n\\tAspectRatio.ar16X9())\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(640)\\n\\t aspectRatio(\\n\\tAspectRatio.ar16X9())\\n\\t }) \\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;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;16:9\\&quot;, width: 640, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;16:9\\&quot;, width: 640, crop: \\&quot;fill\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(ar16X9())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(ar16X9())\\n);&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\\\/eeeps\\\/image\\\/upload\\\/c_fill,ar_16:9,w_640\\\/on_the_phone.jpg&quot;,&quot;cloud_name&quot;:&quot;eeeps&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;fill&quot;,&quot;aspect_ratio&quot;:&quot;16:9&quot;,&quot;width&quot;:&quot;640&quot;}],&quot;transformation_string&quot;:&quot;c_fill,ar_16:9,w_640&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;on_the_phone.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><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_fill,ar_16:9,w_640\/on_the_phone.jpg\" alt=\"Aspect ratio based image cropping\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"640\" height=\"360\"\/><\/p>\n<p>Ok, let\u2019s try something <em>really<\/em> wide:<\/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;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;4:1\\&quot;, width: 640, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;4:1\\&quot;, width: 640, crop: \\&quot;fill\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  fill().width(640).aspectRatio(\\&quot;4:1\\&quot;)\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill().width(640).aspectRatio(\\&quot;4:1\\&quot;)\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;Transformation aspectRatio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;Transformation aspectRatio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(\\n  fill().width(640).aspectRatio(\\&quot;4:1\\&quot;)\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill().width(640).aspectRatio(\\&quot;4:1\\&quot;)\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cld-transformation aspect-ratio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation aspect-ratio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(\\n  fill().width(640).aspectRatio(\\&quot;4:1\\&quot;)\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill().width(640).aspectRatio(\\&quot;4:1\\&quot;)\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cl-transformation aspect-ratio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; crop=\\&quot;fill\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation aspect-ratio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(\\n  fill().width(640).aspectRatio(\\&quot;4:1\\&quot;)\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill().width(640).aspectRatio(\\&quot;4:1\\&quot;)\\n);&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;on_the_phone.jpg&#039;, {aspectRatio: \\&quot;4:1\\&quot;, width: 640, crop: \\&quot;fill\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;on_the_phone.jpg&#039;, {aspectRatio: \\&quot;4:1\\&quot;, width: 640, crop: \\&quot;fill\\&quot;}).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;on_the_phone.jpg\\&quot;).image(aspect_ratio=\\&quot;4:1\\&quot;, width=640, crop=\\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).image(aspect_ratio=\\&quot;4:1\\&quot;, width=640, crop=\\&quot;fill\\&quot;)&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;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(640)\\n-&gt;aspectRatio(\\&quot;4:1\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(640)\\n-&gt;aspectRatio(\\&quot;4:1\\&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;on_the_phone.jpg\\&quot;, array(\\&quot;aspect_ratio\\&quot;=&gt;\\&quot;4:1\\&quot;, \\&quot;width\\&quot;=&gt;640, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, array(\\&quot;aspect_ratio\\&quot;=&gt;\\&quot;4:1\\&quot;, \\&quot;width\\&quot;=&gt;640, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&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;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().aspectRatio(\\&quot;4:1\\&quot;).width(640).crop(\\&quot;fill\\&quot;)).imageTag(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().aspectRatio(\\&quot;4:1\\&quot;).width(640).crop(\\&quot;fill\\&quot;)).imageTag(\\&quot;on_the_phone.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;on_the_phone.jpg\\&quot;, aspect_ratio: \\&quot;4:1\\&quot;, width: 640, crop: \\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, aspect_ratio: \\&quot;4:1\\&quot;, width: 640, crop: \\&quot;fill\\&quot;)&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().AspectRatio(\\&quot;4:1\\&quot;).Width(640).Crop(\\&quot;fill\\&quot;)).BuildImageTag(\\&quot;on_the_phone.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().AspectRatio(\\&quot;4:1\\&quot;).Width(640).Crop(\\&quot;fill\\&quot;)).BuildImageTag(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.aspectRatio(\\&quot;4:1\\&quot;)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.aspectRatio(\\&quot;4:1\\&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().setTransformation(CLDTransformation().setAspectRatio(\\&quot;4:1\\&quot;).setWidth(640).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setAspectRatio(\\&quot;4:1\\&quot;).setWidth(640).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.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().aspectRatio(\\&quot;4:1\\&quot;).width(640).crop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().aspectRatio(\\&quot;4:1\\&quot;).width(640).crop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.aspectRatio(\\&quot;4:1\\&quot;)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.aspectRatio(\\&quot;4:1\\&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;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(640)\\n aspectRatio(\\&quot;4:1\\&quot;) }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(640)\\n aspectRatio(\\&quot;4:1\\&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;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;4:1\\&quot;, width: 640, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;4:1\\&quot;, width: 640, crop: \\&quot;fill\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  fill().width(640).aspectRatio(\\&quot;4:1\\&quot;)\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill().width(640).aspectRatio(\\&quot;4:1\\&quot;)\\n);&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\\\/eeeps\\\/image\\\/upload\\\/c_fill,ar_4:1,w_640\\\/on_the_phone.jpg&quot;,&quot;cloud_name&quot;:&quot;eeeps&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;fill&quot;,&quot;aspect_ratio&quot;:&quot;4:1&quot;,&quot;width&quot;:&quot;640&quot;}],&quot;transformation_string&quot;:&quot;c_fill,ar_4:1,w_640&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;on_the_phone.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><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_fill,ar_4:1,w_640\/on_the_phone.jpg\" alt=\"Wide aspect ratio cropping\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"640\" height=\"160\"\/><\/p>\n<p>This crop is\u2026 awkward. The president\u2019s head is popping up from the bottom of the frame like a turnip.<\/p>\n<p>By default, Cloudinary crops in on an image\u2019s center. But what if we want to crop in on a different focal point? For that, we need to use Cloudinary\u2019s \u201c<a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations#gravity_parameter\">gravity<\/a>\u201d parameter. Our last crop chopped off the president\u2019s body. Let\u2019s aim lower, anchoring our crop to the bottom of the image:<\/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;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;south\\&quot;, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;south\\&quot;, crop: \\&quot;fill\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(compass(\\&quot;south\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(compass(\\&quot;south\\&quot;))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;Transformation aspectRatio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; gravity=\\&quot;south\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;Transformation aspectRatio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; gravity=\\&quot;south\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(compass(\\&quot;south\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(compass(\\&quot;south\\&quot;))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cld-transformation aspect-ratio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; gravity=\\&quot;south\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation aspect-ratio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; gravity=\\&quot;south\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(compass(\\&quot;south\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(compass(\\&quot;south\\&quot;))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cl-transformation aspect-ratio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; gravity=\\&quot;south\\&quot; crop=\\&quot;fill\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation aspect-ratio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; gravity=\\&quot;south\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(compass(\\&quot;south\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(compass(\\&quot;south\\&quot;))\\n);&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;on_the_phone.jpg&#039;, {aspectRatio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;south\\&quot;, crop: \\&quot;fill\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;on_the_phone.jpg&#039;, {aspectRatio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;south\\&quot;, crop: \\&quot;fill\\&quot;}).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;on_the_phone.jpg\\&quot;).image(aspect_ratio=\\&quot;4:1\\&quot;, width=640, gravity=\\&quot;south\\&quot;, crop=\\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).image(aspect_ratio=\\&quot;4:1\\&quot;, width=640, gravity=\\&quot;south\\&quot;, crop=\\&quot;fill\\&quot;)&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;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(640)\\n-&gt;aspectRatio(\\&quot;4:1\\&quot;)\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::south()))\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(640)\\n-&gt;aspectRatio(\\&quot;4:1\\&quot;)\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::south()))\\n\\t);&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;on_the_phone.jpg\\&quot;, array(\\&quot;aspect_ratio\\&quot;=&gt;\\&quot;4:1\\&quot;, \\&quot;width\\&quot;=&gt;640, \\&quot;gravity\\&quot;=&gt;\\&quot;south\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, array(\\&quot;aspect_ratio\\&quot;=&gt;\\&quot;4:1\\&quot;, \\&quot;width\\&quot;=&gt;640, \\&quot;gravity\\&quot;=&gt;\\&quot;south\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&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;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().aspectRatio(\\&quot;4:1\\&quot;).width(640).gravity(\\&quot;south\\&quot;).crop(\\&quot;fill\\&quot;)).imageTag(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().aspectRatio(\\&quot;4:1\\&quot;).width(640).gravity(\\&quot;south\\&quot;).crop(\\&quot;fill\\&quot;)).imageTag(\\&quot;on_the_phone.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;on_the_phone.jpg\\&quot;, aspect_ratio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;south\\&quot;, crop: \\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, aspect_ratio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;south\\&quot;, crop: \\&quot;fill\\&quot;)&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().AspectRatio(\\&quot;4:1\\&quot;).Width(640).Gravity(\\&quot;south\\&quot;).Crop(\\&quot;fill\\&quot;)).BuildImageTag(\\&quot;on_the_phone.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().AspectRatio(\\&quot;4:1\\&quot;).Width(640).Gravity(\\&quot;south\\&quot;).Crop(\\&quot;fill\\&quot;)).BuildImageTag(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.aspectRatio(\\&quot;4:1\\&quot;)\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.aspectRatio(\\&quot;4:1\\&quot;)\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n\\t));&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().setTransformation(CLDTransformation().setAspectRatio(\\&quot;4:1\\&quot;).setWidth(640).setGravity(\\&quot;south\\&quot;).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setAspectRatio(\\&quot;4:1\\&quot;).setWidth(640).setGravity(\\&quot;south\\&quot;).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.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().aspectRatio(\\&quot;4:1\\&quot;).width(640).gravity(\\&quot;south\\&quot;).crop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().aspectRatio(\\&quot;4:1\\&quot;).width(640).gravity(\\&quot;south\\&quot;).crop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.aspectRatio(\\&quot;4:1\\&quot;)\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.aspectRatio(\\&quot;4:1\\&quot;)\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n\\t));&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;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(640)\\n aspectRatio(\\&quot;4:1\\&quot;)\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(640)\\n aspectRatio(\\&quot;4:1\\&quot;)\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n\\t }) \\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;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;south\\&quot;, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;south\\&quot;, crop: \\&quot;fill\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(compass(\\&quot;south\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(compass(\\&quot;south\\&quot;))\\n);&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\\\/eeeps\\\/image\\\/upload\\\/c_fill,ar_4:1,w_640,g_south\\\/on_the_phone.jpg&quot;,&quot;cloud_name&quot;:&quot;eeeps&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;fill&quot;,&quot;aspect_ratio&quot;:&quot;4:1&quot;,&quot;width&quot;:&quot;640&quot;,&quot;gravity&quot;:&quot;south&quot;}],&quot;transformation_string&quot;:&quot;c_fill,ar_4:1,w_640,g_south&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;on_the_phone.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><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_fill,ar_4:1,w_640,g_south\/on_the_phone.jpg\" alt=\"Fixed width with 4:1 aspect ratio based cropping\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"640\" height=\"160\"\/><\/p>\n<p>Oops! Now we\u2019ve chopped off his head! If only we could center the new, cropped image right on his face\u2026<\/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;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;face\\&quot;, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;face\\&quot;, crop: \\&quot;fill\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;Transformation aspectRatio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; gravity=\\&quot;face\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;Transformation aspectRatio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; gravity=\\&quot;face\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cld-transformation aspect-ratio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; gravity=\\&quot;face\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation aspect-ratio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; gravity=\\&quot;face\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cl-transformation aspect-ratio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; gravity=\\&quot;face\\&quot; crop=\\&quot;fill\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation aspect-ratio=\\&quot;4:1\\&quot; width=\\&quot;640\\&quot; gravity=\\&quot;face\\&quot; crop=\\&quot;fill\\&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg&#039;, {aspectRatio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;face\\&quot;, crop: \\&quot;fill\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;on_the_phone.jpg&#039;, {aspectRatio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;face\\&quot;, crop: \\&quot;fill\\&quot;}).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;on_the_phone.jpg\\&quot;).image(aspect_ratio=\\&quot;4:1\\&quot;, width=640, gravity=\\&quot;face\\&quot;, crop=\\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).image(aspect_ratio=\\&quot;4:1\\&quot;, width=640, gravity=\\&quot;face\\&quot;, crop=\\&quot;fill\\&quot;)&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;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(640)\\n-&gt;aspectRatio(\\&quot;4:1\\&quot;)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(640)\\n-&gt;aspectRatio(\\&quot;4:1\\&quot;)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t);&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;on_the_phone.jpg\\&quot;, array(\\&quot;aspect_ratio\\&quot;=&gt;\\&quot;4:1\\&quot;, \\&quot;width\\&quot;=&gt;640, \\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, array(\\&quot;aspect_ratio\\&quot;=&gt;\\&quot;4:1\\&quot;, \\&quot;width\\&quot;=&gt;640, \\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&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;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().aspectRatio(\\&quot;4:1\\&quot;).width(640).gravity(\\&quot;face\\&quot;).crop(\\&quot;fill\\&quot;)).imageTag(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().aspectRatio(\\&quot;4:1\\&quot;).width(640).gravity(\\&quot;face\\&quot;).crop(\\&quot;fill\\&quot;)).imageTag(\\&quot;on_the_phone.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;on_the_phone.jpg\\&quot;, aspect_ratio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;face\\&quot;, crop: \\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, aspect_ratio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;face\\&quot;, crop: \\&quot;fill\\&quot;)&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().AspectRatio(\\&quot;4:1\\&quot;).Width(640).Gravity(\\&quot;face\\&quot;).Crop(\\&quot;fill\\&quot;)).BuildImageTag(\\&quot;on_the_phone.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().AspectRatio(\\&quot;4:1\\&quot;).Width(640).Gravity(\\&quot;face\\&quot;).Crop(\\&quot;fill\\&quot;)).BuildImageTag(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.aspectRatio(\\&quot;4:1\\&quot;)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.aspectRatio(\\&quot;4:1\\&quot;)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&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().setTransformation(CLDTransformation().setAspectRatio(\\&quot;4:1\\&quot;).setWidth(640).setGravity(\\&quot;face\\&quot;).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setAspectRatio(\\&quot;4:1\\&quot;).setWidth(640).setGravity(\\&quot;face\\&quot;).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.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().aspectRatio(\\&quot;4:1\\&quot;).width(640).gravity(\\&quot;face\\&quot;).crop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().aspectRatio(\\&quot;4:1\\&quot;).width(640).gravity(\\&quot;face\\&quot;).crop(\\&quot;fill\\&quot;)).generate(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.aspectRatio(\\&quot;4:1\\&quot;)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(640)\\n.aspectRatio(\\&quot;4:1\\&quot;)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&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;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(640)\\n aspectRatio(\\&quot;4:1\\&quot;)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.fill() { width(640)\\n aspectRatio(\\&quot;4:1\\&quot;)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t }) \\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;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;face\\&quot;, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {aspect_ratio: \\&quot;4:1\\&quot;, width: 640, gravity: \\&quot;face\\&quot;, crop: \\&quot;fill\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  fill()\\n    .width(640)\\n    .aspectRatio(\\&quot;4:1\\&quot;)\\n    .gravity(focusOn(face()))\\n);&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\\\/eeeps\\\/image\\\/upload\\\/c_fill,ar_4:1,w_640,g_face\\\/on_the_phone.jpg&quot;,&quot;cloud_name&quot;:&quot;eeeps&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;fill&quot;,&quot;aspect_ratio&quot;:&quot;4:1&quot;,&quot;width&quot;:&quot;640&quot;,&quot;gravity&quot;:&quot;face&quot;}],&quot;transformation_string&quot;:&quot;c_fill,ar_4:1,w_640,g_face&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;on_the_phone.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><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_fill,ar_4:1,w_640,g_face\/on_the_phone.jpg\" alt=\"Face detection based cropping\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"640\" height=\"160\"\/><\/p>\n<p><a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations#single_face_detection\"><code>g_face<\/code><\/a> finds a face in the image and centers the crop on it, ensuring that if there is a <em>person<\/em> in our photo, they\u2019ll remain front and center.<\/p>\n<h2>Putting it all to work<\/h2>\n<p>So! Now we\u2019ve seen how to mark up visually adaptable images using <code>&lt;picture&gt;<\/code> and generate alternate crops automatically using Cloudinary. We have everything we need to art direct our example\u2019s giant header image:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">picture<\/span>&gt;<\/span>\n    \n  <span class=\"hljs-comment\">&lt;!-- wide crop --&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">source<\/span> \n    <span class=\"hljs-attr\">media<\/span>=<span class=\"hljs-string\">\"(min-width: 600px)\"<\/span>\n    <span class=\"hljs-attr\">srcset<\/span>=<span class=\"hljs-string\">\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_fill,ar_2:1,g_face,f_auto,q_70,w_600\/on_the_phone.jpg 600w,\n    \t\thttps:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_fill,ar_2:1,g_face,f_auto,q_70,w_1200\/on_the_phone.jpg 1200w\"<\/span>\n    <span class=\"hljs-attr\">sizes<\/span>=<span class=\"hljs-string\">\"100vw\"<\/span> \/&gt;<\/span>\n    \n  <span class=\"hljs-comment\">&lt;!-- standard crop --&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">img<\/span>\n    <span class=\"hljs-attr\">srcset<\/span>=<span class=\"hljs-string\">\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/f_auto,q_70,w_400\/on_the_phone.jpg 400w,\n    \t\thttps:\/\/res.cloudinary.com\/eeeps\/image\/upload\/f_auto,q_70,w_800\/on_the_phone.jpg 800w\"<\/span>\n    <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/f_auto,q_70,w_400\/on_the_phone.jpg\"<\/span>\n    <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">\"President Obama on the phone in the Oval Office\"<\/span>\n    <span class=\"hljs-attr\">sizes<\/span>=<span class=\"hljs-string\">\"100vw\"<\/span> \/&gt;<\/span>\n    \n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">picture<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p>This complex-looking example should now make some sense. We start with an un-cropped <code>&lt;img&gt;<\/code> (which includes a <code>srcset<\/code> and <code>sizes<\/code> so that it\u2019ll look good across resolutions), wrap it in a <code>&lt;picture&gt;<\/code>, and give it a <code>&lt;source&gt;<\/code> sibling. This <code>&lt;source&gt;<\/code> represents the cropped version of our image, and will only send a resource to the <code>&lt;img&gt;<\/code> when its <code>media<\/code> attribute <code>(min-width: 600px)<\/code> matches the current environment.<\/p>\n<p>That chunk of code gets us this:<\/p>\n<video controls autoplay loop poster=\"https:\/\/res.cloudinary.com\/eeeps\/video\/upload\/w_770\/hero-result.jpg\">\n\t<source src=\"https:\/\/res.cloudinary.com\/eeeps\/video\/upload\/w_770\/hero-result.mp4\" type=\"video\/mp4\" \/>\n\t<source src=\"https:\/\/res.cloudinary.com\/eeeps\/video\/upload\/w_770\/hero-result.webm\" type=\"video\/webm\" \/>\n\tHero image with a single breakpoint at `600px`\n<\/video>\n<p>The hero image in our <a href=\"https:\/\/ericportis.com\/etc\/cloudinary\/\">example<\/a> is a bit more complex than this, with more breakpoints, more <code>srcset<\/code> resources, and a couple of additional Cloudinary tricks which we\u2019ll cover in our next section. View-source-ing it upon completion of the article is left as an exercise to the reader.<\/p>\n<h2>Room to zoom<\/h2>\n<p>Let\u2019s proceed to the thumbnails further down the page. Remember, they have the opposite problem \u2014 on small screens, they become <em>too small<\/em>. On small screens, we want to \u201czoom in\u201d on their subjects.<\/p>\n<p>In order to do so, we\u2019ll use a new crop mode: <code>c_thumb<\/code>. When used with <code>g_faces<\/code>, <code>c_thumb<\/code> zooms all the way in on a face. Like this:<\/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;on_the_phone.jpg\\&quot;, {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 256, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 256, crop: \\&quot;thumb\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(256)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(256)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;Transformation gravity=\\&quot;face\\&quot; aspectRatio=\\&quot;1:1\\&quot; width=\\&quot;256\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;Transformation gravity=\\&quot;face\\&quot; aspectRatio=\\&quot;1:1\\&quot; width=\\&quot;256\\&quot; crop=\\&quot;thumb\\&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(256)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(256)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cld-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;256\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;256\\&quot; crop=\\&quot;thumb\\&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(256)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(256)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cl-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;256\\&quot; crop=\\&quot;thumb\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;256\\&quot; crop=\\&quot;thumb\\&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(256)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(256)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg&#039;, {gravity: \\&quot;face\\&quot;, aspectRatio: \\&quot;1:1\\&quot;, width: 256, crop: \\&quot;thumb\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;on_the_phone.jpg&#039;, {gravity: \\&quot;face\\&quot;, aspectRatio: \\&quot;1:1\\&quot;, width: 256, crop: \\&quot;thumb\\&quot;}).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;on_the_phone.jpg\\&quot;).image(gravity=\\&quot;face\\&quot;, aspect_ratio=\\&quot;1:1\\&quot;, width=256, crop=\\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).image(gravity=\\&quot;face\\&quot;, aspect_ratio=\\&quot;1:1\\&quot;, width=256, crop=\\&quot;thumb\\&quot;)&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;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(256)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar1X1())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(256)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar1X1())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t);&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;on_the_phone.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1:1\\&quot;, \\&quot;width\\&quot;=&gt;256, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1:1\\&quot;, \\&quot;width\\&quot;=&gt;256, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&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;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().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(256).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(256).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;on_the_phone.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;on_the_phone.jpg\\&quot;, gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 256, crop: \\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 256, crop: \\&quot;thumb\\&quot;)&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().Gravity(\\&quot;face\\&quot;).AspectRatio(\\&quot;1:1\\&quot;).Width(256).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;on_the_phone.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Gravity(\\&quot;face\\&quot;).AspectRatio(\\&quot;1:1\\&quot;).Width(256).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(256)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(256)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&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().setTransformation(CLDTransformation().setGravity(\\&quot;face\\&quot;).setAspectRatio(\\&quot;1:1\\&quot;).setWidth(256).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setGravity(\\&quot;face\\&quot;).setAspectRatio(\\&quot;1:1\\&quot;).setWidth(256).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;on_the_phone.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().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(256).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(256).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(256)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(256)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&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;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(256)\\n\\t aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(256)\\n\\t aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t }) \\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;on_the_phone.jpg\\&quot;, {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 256, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 256, crop: \\&quot;thumb\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(256)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(256)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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\\\/eeeps\\\/image\\\/upload\\\/c_thumb,g_face,ar_1:1,w_256\\\/on_the_phone.jpg&quot;,&quot;cloud_name&quot;:&quot;eeeps&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;thumb&quot;,&quot;gravity&quot;:&quot;face&quot;,&quot;aspect_ratio&quot;:&quot;1:1&quot;,&quot;width&quot;:&quot;256&quot;}],&quot;transformation_string&quot;:&quot;c_thumb,g_face,ar_1:1,w_256&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;on_the_phone.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><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_thumb,g_face,ar_1:1,w_256\/on_the_phone.jpg\" alt=\"Face detection based thumbnail\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"256\" height=\"256\"\/><\/p>\n<p>One gotcha with this technique: it will sometimes create a different crop, depending on the <code>w<\/code> specified. <code>c_thumb<\/code> will zoom in on the face as tightly as it can at the original image\u2019s full resolution. If we specify a tiny <code>w<\/code>, it will happily scale the resulting, fully-zoomed face <em>down<\/em>:<\/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;on_the_phone.jpg\\&quot;, {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 96, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 96, crop: \\&quot;thumb\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(96)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(96)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;Transformation gravity=\\&quot;face\\&quot; aspectRatio=\\&quot;1:1\\&quot; width=\\&quot;96\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;Transformation gravity=\\&quot;face\\&quot; aspectRatio=\\&quot;1:1\\&quot; width=\\&quot;96\\&quot; crop=\\&quot;thumb\\&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(96)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(96)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cld-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;96\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;96\\&quot; crop=\\&quot;thumb\\&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(96)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(96)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cl-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;96\\&quot; crop=\\&quot;thumb\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;96\\&quot; crop=\\&quot;thumb\\&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(96)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(96)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg&#039;, {gravity: \\&quot;face\\&quot;, aspectRatio: \\&quot;1:1\\&quot;, width: 96, crop: \\&quot;thumb\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;on_the_phone.jpg&#039;, {gravity: \\&quot;face\\&quot;, aspectRatio: \\&quot;1:1\\&quot;, width: 96, crop: \\&quot;thumb\\&quot;}).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;on_the_phone.jpg\\&quot;).image(gravity=\\&quot;face\\&quot;, aspect_ratio=\\&quot;1:1\\&quot;, width=96, crop=\\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).image(gravity=\\&quot;face\\&quot;, aspect_ratio=\\&quot;1:1\\&quot;, width=96, crop=\\&quot;thumb\\&quot;)&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;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(96)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar1X1())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(96)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar1X1())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t);&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;on_the_phone.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1:1\\&quot;, \\&quot;width\\&quot;=&gt;96, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1:1\\&quot;, \\&quot;width\\&quot;=&gt;96, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&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;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().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(96).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(96).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;on_the_phone.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;on_the_phone.jpg\\&quot;, gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 96, crop: \\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 96, crop: \\&quot;thumb\\&quot;)&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().Gravity(\\&quot;face\\&quot;).AspectRatio(\\&quot;1:1\\&quot;).Width(96).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;on_the_phone.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Gravity(\\&quot;face\\&quot;).AspectRatio(\\&quot;1:1\\&quot;).Width(96).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(96)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(96)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&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().setTransformation(CLDTransformation().setGravity(\\&quot;face\\&quot;).setAspectRatio(\\&quot;1:1\\&quot;).setWidth(96).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setGravity(\\&quot;face\\&quot;).setAspectRatio(\\&quot;1:1\\&quot;).setWidth(96).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;on_the_phone.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().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(96).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(96).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(96)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(96)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&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;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(96)\\n\\t aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(96)\\n\\t aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t }) \\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;on_the_phone.jpg\\&quot;, {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 96, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 96, crop: \\&quot;thumb\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(96)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(96)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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\\\/eeeps\\\/image\\\/upload\\\/c_thumb,g_face,ar_1:1,w_96\\\/on_the_phone.jpg&quot;,&quot;cloud_name&quot;:&quot;eeeps&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;thumb&quot;,&quot;gravity&quot;:&quot;face&quot;,&quot;aspect_ratio&quot;:&quot;1:1&quot;,&quot;width&quot;:&quot;96&quot;}],&quot;transformation_string&quot;:&quot;c_thumb,g_face,ar_1:1,w_96&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;on_the_phone.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><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_thumb,g_face,ar_1:1,w_96\/on_the_phone.jpg\" alt=\"Face detection based thumbnail with custom aspect ratio and width\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"96\" height=\"96\"\/><\/p>\n<p>But, with a large <code>w<\/code>, instead of resizing the tightly-cropped-face up, it will pad it with the surrounding image at it\u2019s full resolution:<\/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;on_the_phone.jpg\\&quot;, {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(512)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(512)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;Transformation gravity=\\&quot;face\\&quot; aspectRatio=\\&quot;1:1\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;Transformation gravity=\\&quot;face\\&quot; aspectRatio=\\&quot;1:1\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(512)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(512)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cld-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(512)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(512)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg\\&quot; &gt; &lt;cl-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(512)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(512)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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;on_the_phone.jpg&#039;, {gravity: \\&quot;face\\&quot;, aspectRatio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;on_the_phone.jpg&#039;, {gravity: \\&quot;face\\&quot;, aspectRatio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;}).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;on_the_phone.jpg\\&quot;).image(gravity=\\&quot;face\\&quot;, aspect_ratio=\\&quot;1:1\\&quot;, width=512, crop=\\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).image(gravity=\\&quot;face\\&quot;, aspect_ratio=\\&quot;1:1\\&quot;, width=512, crop=\\&quot;thumb\\&quot;)&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;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(512)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar1X1())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(512)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar1X1())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t);&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;on_the_phone.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1:1\\&quot;, \\&quot;width\\&quot;=&gt;512, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1:1\\&quot;, \\&quot;width\\&quot;=&gt;512, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&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;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().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(512).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(512).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;on_the_phone.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;on_the_phone.jpg\\&quot;, gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;)&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().Gravity(\\&quot;face\\&quot;).AspectRatio(\\&quot;1:1\\&quot;).Width(512).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;on_the_phone.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Gravity(\\&quot;face\\&quot;).AspectRatio(\\&quot;1:1\\&quot;).Width(512).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(512)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(512)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&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().setTransformation(CLDTransformation().setGravity(\\&quot;face\\&quot;).setAspectRatio(\\&quot;1:1\\&quot;).setWidth(512).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setGravity(\\&quot;face\\&quot;).setAspectRatio(\\&quot;1:1\\&quot;).setWidth(512).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;on_the_phone.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().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(512).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(512).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(512)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(512)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t));&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;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(512)\\n\\t aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(512)\\n\\t aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t }) \\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;on_the_phone.jpg\\&quot;, {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;})&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;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(512)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(512)\\n    .aspectRatio(ar1X1())\\n    .gravity(focusOn(face()))\\n);&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\\\/eeeps\\\/image\\\/upload\\\/c_thumb,g_face,ar_1:1,w_512\\\/on_the_phone.jpg&quot;,&quot;cloud_name&quot;:&quot;eeeps&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;thumb&quot;,&quot;gravity&quot;:&quot;face&quot;,&quot;aspect_ratio&quot;:&quot;1:1&quot;,&quot;width&quot;:&quot;512&quot;}],&quot;transformation_string&quot;:&quot;c_thumb,g_face,ar_1:1,w_512&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;on_the_phone.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><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_thumb,g_face,ar_1:1,w_512\/on_the_phone.jpg\" alt=\"Face detection based thumbnail of larger width\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"512\" height=\"512\"\/><\/p>\n<p>Put another way: <code>c_thumb<\/code> will never upscale your images.<\/p>\n<p>In order to generate consistent crops for arbitrary ranges of <code>w<\/code> values, we need to crop first, and resize second. We need to learn a new trick: <em>chained transformations<\/em>:<\/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;on_the_phone.jpg\\&quot;, {transformation: [ {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;}, {width: 96, crop: \\&quot;scale\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {transformation: [\\n  {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;},\\n  {width: 96, crop: \\&quot;scale\\&quot;}\\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;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&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;on_the_phone.jpg\\&quot; &gt; &lt;Transformation gravity=\\&quot;face\\&quot; aspectRatio=\\&quot;1:1\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;Transformation width=\\&quot;96\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;Transformation gravity=\\&quot;face\\&quot; aspectRatio=\\&quot;1:1\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n\\t&lt;Transformation width=\\&quot;96\\&quot; crop=\\&quot;scale\\&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;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&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;on_the_phone.jpg\\&quot; &gt; &lt;cld-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;cld-transformation width=\\&quot;96\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation width=\\&quot;96\\&quot; crop=\\&quot;scale\\&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;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&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;on_the_phone.jpg\\&quot; &gt; &lt;cl-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation width=\\&quot;96\\&quot; crop=\\&quot;scale\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation width=\\&quot;96\\&quot; crop=\\&quot;scale\\&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;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&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;on_the_phone.jpg&#039;, {transformation: [ {gravity: \\&quot;face\\&quot;, aspectRatio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;}, {width: 96, crop: \\&quot;scale\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;on_the_phone.jpg&#039;, {transformation: [\\n  {gravity: \\&quot;face\\&quot;, aspectRatio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;},\\n  {width: 96, crop: \\&quot;scale\\&quot;}\\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;on_the_phone.jpg\\&quot;).image(transformation=[ {&#039;gravity&#039;: \\&quot;face\\&quot;, &#039;aspect_ratio&#039;: \\&quot;1:1\\&quot;, &#039;width&#039;: 512, &#039;crop&#039;: \\&quot;thumb\\&quot;}, {&#039;width&#039;: 96, &#039;crop&#039;: \\&quot;scale\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).image(transformation=[\\n  {&#039;gravity&#039;: \\&quot;face\\&quot;, &#039;aspect_ratio&#039;: \\&quot;1:1\\&quot;, &#039;width&#039;: 512, &#039;crop&#039;: \\&quot;thumb\\&quot;},\\n  {&#039;width&#039;: 96, &#039;crop&#039;: \\&quot;scale\\&quot;}\\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;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(512)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar1X1())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t)\\n\\t-&gt;resize(Resize::scale()-&gt;width(96));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(512)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar1X1())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t)\\n\\t-&gt;resize(Resize::scale()-&gt;width(96));&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;on_the_phone.jpg\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1:1\\&quot;, \\&quot;width\\&quot;=&gt;512, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;), array(\\&quot;width\\&quot;=&gt;96, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1:1\\&quot;, \\&quot;width\\&quot;=&gt;512, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;),\\n  array(\\&quot;width\\&quot;=&gt;96, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;)\\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().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(512).crop(\\&quot;thumb\\&quot;).chain() .width(96).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(512).crop(\\&quot;thumb\\&quot;).chain()\\n  .width(96).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;on_the_phone.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;on_the_phone.jpg\\&quot;, transformation: [ {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;}, {width: 96, crop: \\&quot;scale\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, transformation: [\\n  {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;},\\n  {width: 96, crop: \\&quot;scale\\&quot;}\\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().Gravity(\\&quot;face\\&quot;).AspectRatio(\\&quot;1:1\\&quot;).Width(512).Crop(\\&quot;thumb\\&quot;).Chain() .Width(96).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;on_the_phone.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Gravity(\\&quot;face\\&quot;).AspectRatio(\\&quot;1:1\\&quot;).Width(512).Crop(\\&quot;thumb\\&quot;).Chain()\\n  .Width(96).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(512)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.resize(Resize.scale().width(96)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(512)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.resize(Resize.scale().width(96)));&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().setTransformation(CLDTransformation().setGravity(\\&quot;face\\&quot;).setAspectRatio(\\&quot;1:1\\&quot;).setWidth(512).setCrop(\\&quot;thumb\\&quot;).chain() .setWidth(96).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setGravity(\\&quot;face\\&quot;).setAspectRatio(\\&quot;1:1\\&quot;).setWidth(512).setCrop(\\&quot;thumb\\&quot;).chain()\\n  .setWidth(96).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;on_the_phone.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().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(512).crop(\\&quot;thumb\\&quot;).chain() .width(96).crop(\\&quot;scale\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).width(512).crop(\\&quot;thumb\\&quot;).chain()\\n  .width(96).crop(\\&quot;scale\\&quot;)).generate(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(512)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.resize(Resize.scale().width(96)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(512)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.resize(Resize.scale().width(96)));&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;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(512)\\n\\t aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t })\\n\\t resize(Resize.scale() { width(96) }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(512)\\n\\t aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t })\\n\\t resize(Resize.scale() { width(96) }) \\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;on_the_phone.jpg\\&quot;, {transformation: [ {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;}, {width: 96, crop: \\&quot;scale\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {transformation: [\\n  {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;},\\n  {width: 96, crop: \\&quot;scale\\&quot;}\\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;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&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\\\/eeeps\\\/image\\\/upload\\\/c_thumb,g_face,ar_1:1,w_512\\\/w_96\\\/on_the_phone.jpg&quot;,&quot;cloud_name&quot;:&quot;eeeps&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;thumb&quot;,&quot;gravity&quot;:&quot;face&quot;,&quot;aspect_ratio&quot;:&quot;1:1&quot;,&quot;width&quot;:&quot;512&quot;},{&quot;width&quot;:&quot;96&quot;}],&quot;transformation_string&quot;:&quot;c_thumb,g_face,ar_1:1,w_512\\\/w_96&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;on_the_phone.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><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_thumb,g_face,ar_1:1,w_512\/w_96\/on_the_phone.jpg\" alt=\"Face detection based thumbnail with additional resizing\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"96\" height=\"96\"\/><\/p>\n<p>If we split two sets of transformations with a forward slash, Cloudinary will apply the first set of transformations and treat the resulting image as input to the second set. Neat.<\/p>\n<p>Finally\u2014what if we don\u2019t want such a tight crop? To zoom back out from the subject\u2019s face, we need to learn one more parameter: <code>z<\/code>. <code>z<\/code> lets us zoom in or out via a multiplier. Values less than one zoom out, and values greater than one zoom in. So, to zoom out so that the cropped face ends up at a quarter of its original, tightly-cropped size, we specify <code>z_0.25<\/code>.<\/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;on_the_phone.jpg\\&quot;, {transformation: [ {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, zoom: \\&quot;0.25\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;}, {width: 96, crop: \\&quot;scale\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {transformation: [\\n  {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, zoom: \\&quot;0.25\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;},\\n  {width: 96, crop: \\&quot;scale\\&quot;}\\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;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .zoom(0.25)\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .zoom(0.25)\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&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;on_the_phone.jpg\\&quot; &gt; &lt;Transformation gravity=\\&quot;face\\&quot; aspectRatio=\\&quot;1:1\\&quot; zoom=\\&quot;0.25\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;Transformation width=\\&quot;96\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;Transformation gravity=\\&quot;face\\&quot; aspectRatio=\\&quot;1:1\\&quot; zoom=\\&quot;0.25\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n\\t&lt;Transformation width=\\&quot;96\\&quot; crop=\\&quot;scale\\&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;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .zoom(0.25)\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .zoom(0.25)\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&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;on_the_phone.jpg\\&quot; &gt; &lt;cld-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; zoom=\\&quot;0.25\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;cld-transformation width=\\&quot;96\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; zoom=\\&quot;0.25\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation width=\\&quot;96\\&quot; crop=\\&quot;scale\\&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;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .zoom(0.25)\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .zoom(0.25)\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&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;on_the_phone.jpg\\&quot; &gt; &lt;cl-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; zoom=\\&quot;0.25\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation width=\\&quot;96\\&quot; crop=\\&quot;scale\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;on_the_phone.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation gravity=\\&quot;face\\&quot; aspect-ratio=\\&quot;1:1\\&quot; zoom=\\&quot;0.25\\&quot; width=\\&quot;512\\&quot; crop=\\&quot;thumb\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation width=\\&quot;96\\&quot; crop=\\&quot;scale\\&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;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .zoom(0.25)\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .zoom(0.25)\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&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;on_the_phone.jpg&#039;, {transformation: [ {gravity: \\&quot;face\\&quot;, aspectRatio: \\&quot;1:1\\&quot;, zoom: \\&quot;0.25\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;}, {width: 96, crop: \\&quot;scale\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;on_the_phone.jpg&#039;, {transformation: [\\n  {gravity: \\&quot;face\\&quot;, aspectRatio: \\&quot;1:1\\&quot;, zoom: \\&quot;0.25\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;},\\n  {width: 96, crop: \\&quot;scale\\&quot;}\\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;on_the_phone.jpg\\&quot;).image(transformation=[ {&#039;gravity&#039;: \\&quot;face\\&quot;, &#039;aspect_ratio&#039;: \\&quot;1:1\\&quot;, &#039;zoom&#039;: \\&quot;0.25\\&quot;, &#039;width&#039;: 512, &#039;crop&#039;: \\&quot;thumb\\&quot;}, {&#039;width&#039;: 96, &#039;crop&#039;: \\&quot;scale\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;).image(transformation=[\\n  {&#039;gravity&#039;: \\&quot;face\\&quot;, &#039;aspect_ratio&#039;: \\&quot;1:1\\&quot;, &#039;zoom&#039;: \\&quot;0.25\\&quot;, &#039;width&#039;: 512, &#039;crop&#039;: \\&quot;thumb\\&quot;},\\n  {&#039;width&#039;: 96, &#039;crop&#039;: \\&quot;scale\\&quot;}\\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;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(512)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar1X1())\\n-&gt;zoom(0.25)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t)\\n\\t-&gt;resize(Resize::scale()-&gt;width(96));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;on_the_phone.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(512)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar1X1())\\n-&gt;zoom(0.25)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t)\\n\\t-&gt;resize(Resize::scale()-&gt;width(96));&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;on_the_phone.jpg\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1:1\\&quot;, \\&quot;zoom\\&quot;=&gt;\\&quot;0.25\\&quot;, \\&quot;width\\&quot;=&gt;512, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;), array(\\&quot;width\\&quot;=&gt;96, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1:1\\&quot;, \\&quot;zoom\\&quot;=&gt;\\&quot;0.25\\&quot;, \\&quot;width\\&quot;=&gt;512, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;),\\n  array(\\&quot;width\\&quot;=&gt;96, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;)\\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().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).zoom(0.25).width(512).crop(\\&quot;thumb\\&quot;).chain() .width(96).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).zoom(0.25).width(512).crop(\\&quot;thumb\\&quot;).chain()\\n  .width(96).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;on_the_phone.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;on_the_phone.jpg\\&quot;, transformation: [ {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, zoom: 0.25, width: 512, crop: \\&quot;thumb\\&quot;}, {width: 96, crop: \\&quot;scale\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;on_the_phone.jpg\\&quot;, transformation: [\\n  {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, zoom: 0.25, width: 512, crop: \\&quot;thumb\\&quot;},\\n  {width: 96, crop: \\&quot;scale\\&quot;}\\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().Gravity(\\&quot;face\\&quot;).AspectRatio(\\&quot;1:1\\&quot;).Zoom(0.25).Width(512).Crop(\\&quot;thumb\\&quot;).Chain() .Width(96).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;on_the_phone.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Gravity(\\&quot;face\\&quot;).AspectRatio(\\&quot;1:1\\&quot;).Zoom(0.25).Width(512).Crop(\\&quot;thumb\\&quot;).Chain()\\n  .Width(96).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(512)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n.zoom(0.25)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.resize(Resize.scale().width(96)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(512)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n.zoom(0.25)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.resize(Resize.scale().width(96)));&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().setTransformation(CLDTransformation().setGravity(\\&quot;face\\&quot;).setAspectRatio(\\&quot;1:1\\&quot;).setZoom(0.25).setWidth(512).setCrop(\\&quot;thumb\\&quot;).chain() .setWidth(96).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setGravity(\\&quot;face\\&quot;).setAspectRatio(\\&quot;1:1\\&quot;).setZoom(0.25).setWidth(512).setCrop(\\&quot;thumb\\&quot;).chain()\\n  .setWidth(96).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;on_the_phone.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().gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).zoom(0.25).width(512).crop(\\&quot;thumb\\&quot;).chain() .width(96).crop(\\&quot;scale\\&quot;)).generate(\\&quot;on_the_phone.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .gravity(\\&quot;face\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).zoom(0.25).width(512).crop(\\&quot;thumb\\&quot;).chain()\\n  .width(96).crop(\\&quot;scale\\&quot;)).generate(\\&quot;on_the_phone.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;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(512)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n.zoom(0.25)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.resize(Resize.scale().width(96)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;on_the_phone.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(512)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n.zoom(0.25)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.resize(Resize.scale().width(96)));&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;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(512)\\n\\t aspectRatio(\\n\\tAspectRatio.ar1X1())\\n zoom(0.25F)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t })\\n\\t resize(Resize.scale() { width(96) }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;on_the_phone.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(512)\\n\\t aspectRatio(\\n\\tAspectRatio.ar1X1())\\n zoom(0.25F)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t })\\n\\t resize(Resize.scale() { width(96) }) \\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;on_the_phone.jpg\\&quot;, {transformation: [ {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, zoom: \\&quot;0.25\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;}, {width: 96, crop: \\&quot;scale\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;on_the_phone.jpg\\&quot;, {transformation: [\\n  {gravity: \\&quot;face\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, zoom: \\&quot;0.25\\&quot;, width: 512, crop: \\&quot;thumb\\&quot;},\\n  {width: 96, crop: \\&quot;scale\\&quot;}\\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;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .zoom(0.25)\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;on_the_phone.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(512)\\n      .aspectRatio(ar1X1())\\n      .zoom(0.25)\\n      .gravity(focusOn(face()))\\n  )\\n  .resize(scale().width(96));&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\\\/eeeps\\\/image\\\/upload\\\/c_thumb,g_face,ar_1:1,z_0.25,w_512\\\/w_96\\\/on_the_phone.jpg&quot;,&quot;cloud_name&quot;:&quot;eeeps&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;thumb&quot;,&quot;gravity&quot;:&quot;face&quot;,&quot;aspect_ratio&quot;:&quot;1:1&quot;,&quot;zoom&quot;:&quot;0.25&quot;,&quot;width&quot;:&quot;512&quot;},{&quot;width&quot;:&quot;96&quot;}],&quot;transformation_string&quot;:&quot;c_thumb,g_face,ar_1:1,z_0.25,w_512\\\/w_96&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;on_the_phone.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><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_thumb,g_face,ar_1:1,z_0.25,w_512\/w_96\/on_the_phone.jpg\" alt=\"Zoomed-out face detection based thumbnail\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"96\" height=\"96\"\/><\/p>\n<p>And with that, we can smartly zoom our example page\u2019s thumbnails on small screens, using <code>&lt;picture&gt;<\/code>, <code>&lt;source&gt;<\/code>, and Cloudinary:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">picture<\/span>&gt;<\/span>\n    \n  <span class=\"hljs-comment\">&lt;!-- full image --&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">source<\/span>\n    <span class=\"hljs-attr\">media<\/span>=<span class=\"hljs-string\">\"(min-width: 600px)\"<\/span>\n    <span class=\"hljs-attr\">srcset<\/span>=<span class=\"hljs-string\">\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/f_auto,q_70,w_150\/ronny.jpg 150w,\n    \t\thttps:\/\/res.cloudinary.com\/eeeps\/image\/upload\/f_auto,q_70,w_400\/ronny.jpg 400w\"<\/span>\n    <span class=\"hljs-attr\">sizes<\/span>=<span class=\"hljs-string\">\"calc(8em + 1vw)\"<\/span>\n  \/&gt;<\/span>\n    \n  <span class=\"hljs-comment\">&lt;!-- zoomed + square-cropped thumb for small screens --&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">img<\/span> \n    <span class=\"hljs-attr\">srcset<\/span>=<span class=\"hljs-string\">\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_thumb,g_face,ar_1:1,z_0.25,w_180\/f_auto,q_70,w_90\/ronny.jpg 90w,\n    \t\thttps:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_thumb,g_face,ar_1:1,z_0.25,w_180\/f_auto,q_70,w_180\/ronny.jpg 180w\"<\/span>\n    <span class=\"hljs-attr\">sizes<\/span>=<span class=\"hljs-string\">\"calc(4em + 3vw)\"<\/span>\n    <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"https:\/\/res.cloudinary.com\/eeeps\/image\/upload\/c_thumb,g_face,ar_1:1,z_0.25,w_180\/f_auto,q_70,w_90\/ronny.jpg\"<\/span>\n    <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">\"President Obama speaking to Ronny Jackson\"<\/span>\n  \/&gt;<\/span>\n    \n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">picture<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p>A giant chunk of code like this can be intimidating; the trick is to look at it like a cake \u2013 multiple layers, each one building off of the last. Let\u2019s break it down from the bottom.<\/p>\n<p>We start, as always, with an <code>&lt;img&gt;<\/code> and some <code>alt<\/code> text, describing the image.<\/p>\n<p>For browsers that can display images (and users that can see them), we include an <code>&lt;img src&gt;<\/code> on top of it, which contains the mobile-first default version of our image.<\/p>\n<p>Browsers that understand <code>srcset<\/code> and <code>sizes<\/code> (which, these days, is <a href=\"https:\/\/caniuse.com\/#feat=srcset\">just about all of them<\/a>) will use these attributes, instead of the <code>src<\/code>, to select a resource to load, giving our image the ability to adapt to fit a range of viewport sizes and display densities.<\/p>\n<p>Finally, we wrap our <code>&lt;img&gt;<\/code> in a <code>&lt;picture&gt;<\/code> and give it a <code>&lt;source&gt;<\/code> sibling, which will, in supporting browsers and on larger screens, allow the image to <em>visually<\/em> adapt, zooming out at a breakpoint when the viewport is sufficiently large.<\/p>\n<p>Put it all together, and in a modern browser, you get this:<\/p>\n<video controls autoplay loop poster=\"https:\/\/res.cloudinary.com\/eeeps\/video\/upload\/w_770\/thumb-result.jpg\">\n\t<source src=\"https:\/\/res.cloudinary.com\/eeeps\/video\/upload\/w_770\/thumb-result.mp4\" type=\"video\/mp4\" \/>\n\t<source src=\"https:\/\/res.cloudinary.com\/eeeps\/video\/upload\/w_770\/thumb-result.webm\" type=\"video\/webm\" \/>\n\tThumbnail images, focus on single breakpoint\n<\/video>\n<p>So there you have it \u2013 visually-<a href=\"https:\/\/cloudinary.com\/glossary\/adaptive-images\">adaptive<\/a>, art-directed images using <code>&lt;picture&gt;<\/code>, <code>&lt;source&gt;<\/code>, and Cloudinary. Art direction opens up new frontiers in responsive design; Cloudinary\u2019s on-the-fly face-detection, cropping, resizing, and optimization capabilities make it easy. So: go forth! And mark up performant, adaptable, progressively enhanced images for all.<\/p>\n<h2>Further Reading on Responsive Images<\/h2>\n<ul>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/make_all_images_on_your_website_responsive_in_3_easy_steps\">Responsive images with Cloudinary<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/introducing_smart_cropping_intelligent_quality_selection_and_automated_responsive_images\">Auto-Crop Images for Responsive Designs and Improved Image Quality<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/responsive_images_with_srcset_sizes_and_cloudinary\">Responsive Images: The srcset and sizes HTML Image Attributes<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/make_all_images_on_your_website_responsive_in_3_easy_steps\">Make All Images on Your Website Responsive in 3 Easy Steps<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/best_practices_for_responsive_web_design\">Best Practices for Responsive Web Design<\/a>\n<\/li>\n<\/ul>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":21353,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[426,134,145,165,249,251],"class_list":["post-21352","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-featured","tag-guest-post","tag-html5","tag-image-transformation","tag-responsive","tag-responsive-images"],"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>Art directed responsive images with picture and Cloudinary<\/title>\n<meta name=\"description\" content=\"How-to art direct images using Cloudinary&#039;s image transformations and new HTML5 responsive image markup\" \/>\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\/automatically_art_directed_responsive_images\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automatically art-directed responsive images with Cloudinary\" \/>\n<meta property=\"og:description\" content=\"How-to art direct images using Cloudinary&#039;s image transformations and new HTML5 responsive image markup\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-03T14:26:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-21T19:19:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725912\/Web_Assets\/blog\/responsive_picture_post\/responsive_picture_post.png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"1540\" \/>\n\t<meta property=\"og:image:height\" content=\"925\" \/>\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\/automatically_art_directed_responsive_images#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Automatically art-directed responsive images with Cloudinary\",\"datePublished\":\"2016-02-03T14:26:55+00:00\",\"dateModified\":\"2025-08-21T19:19:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images\"},\"wordCount\":6,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725912\/Web_Assets\/blog\/responsive_picture_post\/responsive_picture_post.png?_i=AA\",\"keywords\":[\"Featured\",\"Guest Post\",\"HTML5\",\"Image Transformation\",\"Responsive\",\"Responsive Images\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2016\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images\",\"url\":\"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images\",\"name\":\"Art directed responsive images with picture and Cloudinary\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725912\/Web_Assets\/blog\/responsive_picture_post\/responsive_picture_post.png?_i=AA\",\"datePublished\":\"2016-02-03T14:26:55+00:00\",\"dateModified\":\"2025-08-21T19:19:43+00:00\",\"description\":\"How-to art direct images using Cloudinary's image transformations and new HTML5 responsive image markup\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725912\/Web_Assets\/blog\/responsive_picture_post\/responsive_picture_post.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725912\/Web_Assets\/blog\/responsive_picture_post\/responsive_picture_post.png?_i=AA\",\"width\":1540,\"height\":925},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automatically art-directed responsive images with Cloudinary\"}]},{\"@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":"Art directed responsive images with picture and Cloudinary","description":"How-to art direct images using Cloudinary's image transformations and new HTML5 responsive image markup","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\/automatically_art_directed_responsive_images","og_locale":"en_US","og_type":"article","og_title":"Automatically art-directed responsive images with Cloudinary","og_description":"How-to art direct images using Cloudinary's image transformations and new HTML5 responsive image markup","og_url":"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images","og_site_name":"Cloudinary Blog","article_published_time":"2016-02-03T14:26:55+00:00","article_modified_time":"2025-08-21T19:19:43+00:00","og_image":[{"width":1540,"height":925,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725912\/Web_Assets\/blog\/responsive_picture_post\/responsive_picture_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\/automatically_art_directed_responsive_images#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images"},"author":{"name":"","@id":""},"headline":"Automatically art-directed responsive images with Cloudinary","datePublished":"2016-02-03T14:26:55+00:00","dateModified":"2025-08-21T19:19:43+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images"},"wordCount":6,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725912\/Web_Assets\/blog\/responsive_picture_post\/responsive_picture_post.png?_i=AA","keywords":["Featured","Guest Post","HTML5","Image Transformation","Responsive","Responsive Images"],"inLanguage":"en-US","copyrightYear":"2016","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images","url":"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images","name":"Art directed responsive images with picture and Cloudinary","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725912\/Web_Assets\/blog\/responsive_picture_post\/responsive_picture_post.png?_i=AA","datePublished":"2016-02-03T14:26:55+00:00","dateModified":"2025-08-21T19:19:43+00:00","description":"How-to art direct images using Cloudinary's image transformations and new HTML5 responsive image markup","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725912\/Web_Assets\/blog\/responsive_picture_post\/responsive_picture_post.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725912\/Web_Assets\/blog\/responsive_picture_post\/responsive_picture_post.png?_i=AA","width":1540,"height":925},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/automatically_art_directed_responsive_images#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Automatically art-directed responsive images with Cloudinary"}]},{"@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\/v1649725912\/Web_Assets\/blog\/responsive_picture_post\/responsive_picture_post.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21352","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=21352"}],"version-history":[{"count":11,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21352\/revisions"}],"predecessor-version":[{"id":37164,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21352\/revisions\/37164"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/21353"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=21352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=21352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=21352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}