{"id":21368,"date":"2016-04-14T12:14:35","date_gmt":"2016-04-14T12:14:35","guid":{"rendered":"http:\/\/facial_attribute_detection_with_microsoft_s_face_api"},"modified":"2025-03-23T12:25:53","modified_gmt":"2025-03-23T19:25:53","slug":"facial_attribute_detection_with_microsoft_s_face_api","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api","title":{"rendered":"Facial Attribute Detection with Microsoft&#8217;s Face API and Cloudinary"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p>Many of the photos displayed on the internet these days are of people. If your website or mobile application displays photos that include people, you will want to make sure that their faces are included in the delivered images when cropping and transforming them to fit your graphic design and responsive layout. You may even want to further transform an image according to the faces present, for example, adding a harlequin mask overlay on all of their eyes, where each mask is adjusted to the correct size and orientation (although not a typical use case, it\u2019s a cool example of using advanced facial attribute detection):<\/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;cloudinary_team.jpg\\&quot;, {transformation: [ {width: 700, radius: \\&quot;max\\&quot;, crop: \\&quot;scale\\&quot;}, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: \\&quot;harlequinmask\\&quot;, width: \\&quot;1.7\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;cloudinary_team.jpg\\&quot;, {transformation: [\\n  {width: 700, radius: \\&quot;max\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: \\&quot;harlequinmask\\&quot;, width: \\&quot;1.7\\&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;cloudinary_team.jpg\\&quot;)\\n  .resize(scale().width(700))\\n  .roundCorners(max())\\n  .overlay(\\n    source(\\n      image(\\&quot;harlequinmask\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.7).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(advancedEyes())))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;cloudinary_team.jpg\\&quot;)\\n  .resize(scale().width(700))\\n  .roundCorners(max())\\n  .overlay(\\n    source(\\n      image(\\&quot;harlequinmask\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.7).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(advancedEyes())))\\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;cloudinary_team.jpg\\&quot; &gt; &lt;Transformation width=\\&quot;700\\&quot; radius=\\&quot;max\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;Transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;adv_eyes\\&quot; overlay=\\&quot;harlequinmask\\&quot; width=\\&quot;1.7\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;cloudinary_team.jpg\\&quot; &gt;\\n\\t&lt;Transformation width=\\&quot;700\\&quot; radius=\\&quot;max\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt;\\n\\t&lt;Transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;adv_eyes\\&quot; overlay=\\&quot;harlequinmask\\&quot; width=\\&quot;1.7\\&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;cloudinary_team.jpg\\&quot;)\\n  .resize(scale().width(700))\\n  .roundCorners(max())\\n  .overlay(\\n    source(\\n      image(\\&quot;harlequinmask\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.7).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(advancedEyes())))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;cloudinary_team.jpg\\&quot;)\\n  .resize(scale().width(700))\\n  .roundCorners(max())\\n  .overlay(\\n    source(\\n      image(\\&quot;harlequinmask\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.7).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(advancedEyes())))\\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;cloudinary_team.jpg\\&quot; &gt; &lt;cld-transformation width=\\&quot;700\\&quot; radius=\\&quot;max\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;cld-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;adv_eyes\\&quot; :overlay=\\&quot;harlequinmask\\&quot; width=\\&quot;1.7\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;cloudinary_team.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation width=\\&quot;700\\&quot; radius=\\&quot;max\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;adv_eyes\\&quot; :overlay=\\&quot;harlequinmask\\&quot; width=\\&quot;1.7\\&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;cloudinary_team.jpg\\&quot;)\\n  .resize(scale().width(700))\\n  .roundCorners(max())\\n  .overlay(\\n    source(\\n      image(\\&quot;harlequinmask\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.7).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(advancedEyes())))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;cloudinary_team.jpg\\&quot;)\\n  .resize(scale().width(700))\\n  .roundCorners(max())\\n  .overlay(\\n    source(\\n      image(\\&quot;harlequinmask\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.7).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(advancedEyes())))\\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;cloudinary_team.jpg\\&quot; &gt; &lt;cl-transformation width=\\&quot;700\\&quot; radius=\\&quot;max\\&quot; crop=\\&quot;scale\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;adv_eyes\\&quot; overlay=\\&quot;harlequinmask\\&quot; width=\\&quot;1.7\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;cloudinary_team.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation width=\\&quot;700\\&quot; radius=\\&quot;max\\&quot; crop=\\&quot;scale\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;adv_eyes\\&quot; overlay=\\&quot;harlequinmask\\&quot; width=\\&quot;1.7\\&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;cloudinary_team.jpg\\&quot;)\\n  .resize(scale().width(700))\\n  .roundCorners(max())\\n  .overlay(\\n    source(\\n      image(\\&quot;harlequinmask\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.7).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(advancedEyes())))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;cloudinary_team.jpg\\&quot;)\\n  .resize(scale().width(700))\\n  .roundCorners(max())\\n  .overlay(\\n    source(\\n      image(\\&quot;harlequinmask\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.7).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(advancedEyes())))\\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;cloudinary_team.jpg&#039;, {transformation: [ {width: 700, radius: \\&quot;max\\&quot;, crop: \\&quot;scale\\&quot;}, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;harlequinmask\\&quot;), width: \\&quot;1.7\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;cloudinary_team.jpg&#039;, {transformation: [\\n  {width: 700, radius: \\&quot;max\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;harlequinmask\\&quot;), width: \\&quot;1.7\\&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;cloudinary_team.jpg\\&quot;).image(transformation=[ {&#039;width&#039;: 700, &#039;radius&#039;: \\&quot;max\\&quot;, &#039;crop&#039;: \\&quot;scale\\&quot;}, {&#039;flags&#039;: \\&quot;region_relative\\&quot;, &#039;gravity&#039;: \\&quot;adv_eyes\\&quot;, &#039;overlay&#039;: \\&quot;harlequinmask\\&quot;, &#039;width&#039;: \\&quot;1.7\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;cloudinary_team.jpg\\&quot;).image(transformation=[\\n  {&#039;width&#039;: 700, &#039;radius&#039;: \\&quot;max\\&quot;, &#039;crop&#039;: \\&quot;scale\\&quot;},\\n  {&#039;flags&#039;: \\&quot;region_relative\\&quot;, &#039;gravity&#039;: \\&quot;adv_eyes\\&quot;, &#039;overlay&#039;: \\&quot;harlequinmask\\&quot;, &#039;width&#039;: \\&quot;1.7\\&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;cloudinary_team.jpg&#039;))\\n\\t-&gt;resize(Resize::scale()-&gt;width(700))\\n\\t-&gt;roundCorners(RoundCorners::max())\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;harlequinmask\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(1.7)\\n\\t-&gt;regionRelative()\\n\\t))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::advancedEyes()))\\n\\t)\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;cloudinary_team.jpg&#039;))\\n\\t-&gt;resize(Resize::scale()-&gt;width(700))\\n\\t-&gt;roundCorners(RoundCorners::max())\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;harlequinmask\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(1.7)\\n\\t-&gt;regionRelative()\\n\\t))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::advancedEyes()))\\n\\t)\\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;cloudinary_team.jpg\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;width\\&quot;=&gt;700, \\&quot;radius\\&quot;=&gt;\\&quot;max\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;), array(\\&quot;flags\\&quot;=&gt;\\&quot;region_relative\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;adv_eyes\\&quot;, \\&quot;overlay\\&quot;=&gt;\\&quot;harlequinmask\\&quot;, \\&quot;width\\&quot;=&gt;\\&quot;1.7\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;cloudinary_team.jpg\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;width\\&quot;=&gt;700, \\&quot;radius\\&quot;=&gt;\\&quot;max\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;),\\n  array(\\&quot;flags\\&quot;=&gt;\\&quot;region_relative\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;adv_eyes\\&quot;, \\&quot;overlay\\&quot;=&gt;\\&quot;harlequinmask\\&quot;, \\&quot;width\\&quot;=&gt;\\&quot;1.7\\&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().width(700).radius(\\&quot;max\\&quot;).crop(\\&quot;scale\\&quot;).chain() .flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;adv_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;harlequinmask\\&quot;)).width(1.7)).imageTag(\\&quot;cloudinary_team.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .width(700).radius(\\&quot;max\\&quot;).crop(\\&quot;scale\\&quot;).chain()\\n  .flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;adv_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;harlequinmask\\&quot;)).width(1.7)).imageTag(\\&quot;cloudinary_team.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;cloudinary_team.jpg\\&quot;, transformation: [ {width: 700, radius: \\&quot;max\\&quot;, crop: \\&quot;scale\\&quot;}, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: \\&quot;harlequinmask\\&quot;, width: 1.7} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;cloudinary_team.jpg\\&quot;, transformation: [\\n  {width: 700, radius: \\&quot;max\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: \\&quot;harlequinmask\\&quot;, width: 1.7}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(700).Radius(\\&quot;max\\&quot;).Crop(\\&quot;scale\\&quot;).Chain() .Flags(\\&quot;region_relative\\&quot;).Gravity(\\&quot;adv_eyes\\&quot;).Overlay(new Layer().PublicId(\\&quot;harlequinmask\\&quot;)).Width(1.7)).BuildImageTag(\\&quot;cloudinary_team.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Width(700).Radius(\\&quot;max\\&quot;).Crop(\\&quot;scale\\&quot;).Chain()\\n  .Flags(\\&quot;region_relative\\&quot;).Gravity(\\&quot;adv_eyes\\&quot;).Overlay(new Layer().PublicId(\\&quot;harlequinmask\\&quot;)).Width(1.7)).BuildImageTag(\\&quot;cloudinary_team.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;cloudinary_team.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(700))\\n\\t.roundCorners(RoundCorners.max())\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;harlequinmask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.7)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t)\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;cloudinary_team.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(700))\\n\\t.roundCorners(RoundCorners.max())\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;harlequinmask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.7)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t)\\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().setWidth(700).setRadius(\\&quot;max\\&quot;).setCrop(\\&quot;scale\\&quot;).chain() .setFlags(\\&quot;region_relative\\&quot;).setGravity(\\&quot;adv_eyes\\&quot;).setOverlay(\\&quot;harlequinmask\\&quot;).setWidth(1.7)).generate(\\&quot;cloudinary_team.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setWidth(700).setRadius(\\&quot;max\\&quot;).setCrop(\\&quot;scale\\&quot;).chain()\\n  .setFlags(\\&quot;region_relative\\&quot;).setGravity(\\&quot;adv_eyes\\&quot;).setOverlay(\\&quot;harlequinmask\\&quot;).setWidth(1.7)).generate(\\&quot;cloudinary_team.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(700).radius(\\&quot;max\\&quot;).crop(\\&quot;scale\\&quot;).chain() .flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;adv_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;harlequinmask\\&quot;)).width(1.7)).generate(\\&quot;cloudinary_team.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .width(700).radius(\\&quot;max\\&quot;).crop(\\&quot;scale\\&quot;).chain()\\n  .flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;adv_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;harlequinmask\\&quot;)).width(1.7)).generate(\\&quot;cloudinary_team.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;cloudinary_team.jpg&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_700,r_max\\\/fl_region_relative,g_adv_eyes,l_harlequinmask,w_1.7\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;cloudinary_team.jpg&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_700,r_max\\\/fl_region_relative,g_adv_eyes,l_harlequinmask,w_1.7\\&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;cloudinary_team.jpg\\&quot;)\\n\\t resize(Resize.scale() { width(700) })\\n\\t roundCorners(RoundCorners.max())\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;harlequinmask\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(1.7F)\\n\\t regionRelative()\\n\\t }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t })\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;cloudinary_team.jpg\\&quot;)\\n\\t resize(Resize.scale() { width(700) })\\n\\t roundCorners(RoundCorners.max())\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;harlequinmask\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(1.7F)\\n\\t regionRelative()\\n\\t }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t })\\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;cloudinary_team.jpg\\&quot;, {transformation: [ {width: 700, radius: \\&quot;max\\&quot;, crop: \\&quot;scale\\&quot;}, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;harlequinmask\\&quot;), width: \\&quot;1.7\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;cloudinary_team.jpg\\&quot;, {transformation: [\\n  {width: 700, radius: \\&quot;max\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;harlequinmask\\&quot;), width: \\&quot;1.7\\&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;cloudinary_team.jpg\\&quot;)\\n  .resize(scale().width(700))\\n  .roundCorners(max())\\n  .overlay(\\n    source(\\n      image(\\&quot;harlequinmask\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.7).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(advancedEyes())))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;cloudinary_team.jpg\\&quot;)\\n  .resize(scale().width(700))\\n  .roundCorners(max())\\n  .overlay(\\n    source(\\n      image(\\&quot;harlequinmask\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.7).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(advancedEyes())))\\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\\\/demo\\\/image\\\/upload\\\/w_700,r_max\\\/fl_region_relative,g_adv_eyes,l_harlequinmask,w_1.7\\\/cloudinary_team.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&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;width&quot;:&quot;700&quot;,&quot;radius&quot;:&quot;max&quot;},{&quot;flags&quot;:&quot;region_relative&quot;,&quot;gravity&quot;:&quot;adv_eyes&quot;,&quot;overlay&quot;:&quot;harlequinmask&quot;,&quot;width&quot;:&quot;1.7&quot;}],&quot;transformation_string&quot;:&quot;w_700,r_max\\\/fl_region_relative,g_adv_eyes,l_harlequinmask,w_1.7&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;cloudinary_team.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_700,r_max\/fl_region_relative,g_adv_eyes,l_harlequinmask,w_1.7\/cloudinary_team.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_700,r_max\/fl_region_relative,g_adv_eyes,l_harlequinmask,w_1.7\/cloudinary_team.jpg\" alt=\"Cloudinary team with masks\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"700\" height=\"448\"\/><\/a><\/p>\n<p>Face Detection is a great feature that enables the automatic modification of images according to the detected faces within an image, making it simple to intelligently crop, position, resize and transform your images appropriately.<\/p>\n<p>At Cloudinary we strive to create an enriched environment that can solve our customers media asset related needs. By taking a holistic approach to image management, we create partnerships with leading companies developing image processing and media related technologies that can extend our internal features and capabilities and cater customers with more \u201ccomplex\u201d needs. Our add-ons feature services pre-integrated into Cloudinary that are tailored for developing, extending, and operating web and mobile apps.<\/p>\n<p>We have recently partnered with <strong><a href=\"https:\/\/www.microsoft.com\/cognitive-services\/\">Microsoft\u2019s Cognitive Services<\/a><\/strong> which provides a <strong><a href=\"https:\/\/www.microsoft.com\/cognitive-services\/en-us\/face-api\">Face API<\/a><\/strong> for high precision face detection with state-of-the-art cloud-based algorithms. The Face API technology is fully integrated within our <strong>Advanced Facial Attributes Detection<\/strong> add-on that can do more than just detect the human faces in an image. The Advanced Facial Attribute Detection add-on can also extract meaningful advanced data about the face(s) in an image, including the exact location of facial features. This allows you even greater control over your image categorization, and to automatically use these details to smartly crop, position, rotate and overlay images based on the detected facial features.<\/p>\n<p><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/MS_CS_logo.png\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/MS_CS_logo.png\" alt=\"Microsoft Cognitive Services logo\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"278\" height=\"83\"\/><\/a><\/p>\n<h2>How to automatically detect facial attributes<\/h2>\n<p>Cloudinary supports uploading images using a cloud-based API. You can request further information while uploading the image by setting the <code>detection<\/code> parameter to <code>adv_face<\/code> when calling Cloudinary\u2019s upload API and Advanced Facial Attribute Detection is utilized to automatically extract detailed face attributes from the uploaded image. The detected faces are returned in the JSON response with rectangles (left, top, width and height) indicating the location of faces in the image in pixels, the exact position details of the eyes, mouth, eyebrows, nose and lips, as well as a series of face related attributes from each face such as pose, gender and age. See the <a href=\"https:\/\/cloudinary.com\/documentation\/advanced_facial_attributes_detection_addon\">Advanced Facial Attribute Detection documentation<\/a> for more information. The code sample below uploads the <code>lady<\/code> image while requesting that the facial attributes are also returned in the JSON response:<\/p>\n<cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;Cloudinary::Uploader.upload(\\&quot;lady.jpg\\&quot;, \\n              :detection: \\&quot;adv_face\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;Cloudinary::Uploader.upload(\\&quot;lady.jpg\\&quot;, \\n              :detection: \\&quot;adv_face\\&quot;)&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;rawCodeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::upload(\\&quot;lady.jpg\\&quot;, \\n              array(\\n               \\&quot;detection\\&quot;: \\&quot;adv_face\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::upload(\\&quot;lady.jpg\\&quot;, \\n              array(\\n               \\&quot;detection\\&quot;: \\&quot;adv_face\\&quot;));&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;lady.jpg\\&quot;, \\n              detection = \\&quot;adv_face\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;lady.jpg\\&quot;, \\n              detection = \\&quot;adv_face\\&quot;)&quot;},{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;javascript&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;lady.jpg\\&quot;, \\n              function(result) {console.log(result); }, { detection: \\&quot;adv_face\\&quot; });&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;lady.jpg\\&quot;, \\n              function(result) {console.log(result); }, { detection: \\&quot;adv_face\\&quot; });&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader().upload(\\&quot;lady.jpg\\&quot;, \\n              Cloudinary.asMap(\\&quot;detection\\&quot;, \\&quot;adv_face\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader().upload(\\&quot;lady.jpg\\&quot;, \\n              Cloudinary.asMap(\\&quot;detection\\&quot;, \\&quot;adv_face\\&quot;));&quot;}]\"\n      parsed-url=\"[]\"\n      with-url=\"false\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget>\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;lady.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;lady.jpg\\&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;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;lady.jpg\\&quot; &gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;lady.jpg\\&quot; &gt;\\n\\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;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;lady.jpg\\&quot; &gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;lady.jpg\\&quot; &gt;\\n\\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;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;lady.jpg\\&quot; &gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;lady.jpg\\&quot; &gt;\\n\\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;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;lady.jpg&#039;).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;lady.jpg&#039;).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;lady.jpg\\&quot;).image()&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;lady.jpg\\&quot;).image()&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;lady.jpg&#039;));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;lady.jpg&#039;));&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;lady.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;lady.jpg\\&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().imageTag(\\&quot;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().imageTag(\\&quot;lady.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;lady.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;lady.jpg\\&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.BuildImageTag(\\&quot;lady.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.BuildImageTag(\\&quot;lady.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;lady.jpg&#039;).transformation(Transformation());&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;lady.jpg&#039;).transformation(Transformation());&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().generate(\\&quot;lady.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().generate(\\&quot;lady.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().generate(\\&quot;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().generate(\\&quot;lady.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;lady.jpg&#039;).transformation(Transformation());&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;lady.jpg&#039;).transformation(Transformation());&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;lady.jpg\\&quot;) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;lady.jpg\\&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;lady.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;lady.jpg\\&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;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/upload\\\/lady.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&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;transformation_string&quot;:&quot;&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;lady.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/lady.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_200\/lady.jpg\" alt=\"Original uploaded image\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"200\" height=\"300\"\/><\/a><\/p>\n<p>The example JSON snippet below contains the results of the upload response when applying advanced facial attribute detection on the uploaded image. The response includes very detailed information regarding the face that was automatically detected in the image above:<\/p>\n<pre class=\"js-syntax-highlighted\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">{\n...\n <span class=\"hljs-string\">\"info\"<\/span>: \n  {<span class=\"hljs-string\">\"detection\"<\/span>: \n    {<span class=\"hljs-string\">\"adv_face\"<\/span>: \n      {<span class=\"hljs-string\">\"status\"<\/span>: <span class=\"hljs-string\">\"complete\"<\/span>,\n       <span class=\"hljs-string\">\"data\"<\/span>: \n        &#91;{<span class=\"hljs-string\">\"bounding_box\"<\/span>: \n           {<span class=\"hljs-string\">\"top\"<\/span>: <span class=\"hljs-number\">234.0<\/span>, <span class=\"hljs-string\">\"left\"<\/span>: <span class=\"hljs-number\">216.0<\/span>, <span class=\"hljs-string\">\"width\"<\/span>: <span class=\"hljs-number\">244.0<\/span>, <span class=\"hljs-string\">\"height\"<\/span>: <span class=\"hljs-number\">244.0<\/span>},\n          <span class=\"hljs-string\">\"attributes\"<\/span>: \n           {<span class=\"hljs-string\">\"smile\"<\/span>: <span class=\"hljs-number\">0.649<\/span>,\n            <span class=\"hljs-string\">\"head_pose\"<\/span>: {<span class=\"hljs-string\">\"pitch\"<\/span>: <span class=\"hljs-number\">0.0<\/span>, <span class=\"hljs-string\">\"roll\"<\/span>: <span class=\"hljs-number\">-6.7<\/span>, <span class=\"hljs-string\">\"yaw\"<\/span>: <span class=\"hljs-number\">0.6<\/span>},\n            <span class=\"hljs-string\">\"gender\"<\/span>: <span class=\"hljs-string\">\"female\"<\/span>,\n            <span class=\"hljs-string\">\"age\"<\/span>: <span class=\"hljs-number\">30.3<\/span>,\n            <span class=\"hljs-string\">\"facial_hair\"<\/span>: {<span class=\"hljs-string\">\"moustache\"<\/span>: <span class=\"hljs-number\">0.0<\/span>, <span class=\"hljs-string\">\"beard\"<\/span>: <span class=\"hljs-number\">0.0<\/span>, \n                            <span class=\"hljs-string\">\"sideburns\"<\/span>: <span class=\"hljs-number\">0.0<\/span>}},\n          <span class=\"hljs-string\">\"facial_landmarks\"<\/span>: \n           {<span class=\"hljs-string\">\"mouth\"<\/span>: \n             {<span class=\"hljs-string\">\"left\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">277.1<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">410.6<\/span>},\n              <span class=\"hljs-string\">\"right\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">410.2<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">395.1<\/span>},\n              <span class=\"hljs-string\">\"under_lip\"<\/span>: \n               {<span class=\"hljs-string\">\"bottom\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">352.8<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">445.0<\/span>},\n                <span class=\"hljs-string\">\"top\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">349.1<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">431.8<\/span>}},\n              <span class=\"hljs-string\">\"upper_lip\"<\/span>: \n               {<span class=\"hljs-string\">\"bottom\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">346.3<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">415.1<\/span>},\n                <span class=\"hljs-string\">\"top\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">345.4<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">407.5<\/span>}}},\n            <span class=\"hljs-string\">\"eyebrow\"<\/span>: \n             {<span class=\"hljs-string\">\"left_outer\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">224.1<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">298.0<\/span>},\n              <span class=\"hljs-string\">\"left_inner\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">306.6<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">283.4<\/span>},\n              <span class=\"hljs-string\">\"right_inner\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">361.4<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">279.8<\/span>},\n              <span class=\"hljs-string\">\"right_outer\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">428.8<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">272.2<\/span>}},\n            <span class=\"hljs-string\">\"eye\"<\/span>: \n             {<span class=\"hljs-string\">\"left_outer\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">258.5<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">314.1<\/span>},\n              <span class=\"hljs-string\">\"left_top\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">277.0<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">306.2<\/span>},\n              <span class=\"hljs-string\">\"left_bottom\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">277.1<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">315.6<\/span>},\n              <span class=\"hljs-string\">\"left_inner\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">296.4<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">312.9<\/span>},\n              <span class=\"hljs-string\">\"right_inner\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">373.4<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">305.2<\/span>},\n              <span class=\"hljs-string\">\"right_top\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">388.0<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">294.5<\/span>},\n              <span class=\"hljs-string\">\"right_bottom\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">389.0<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">306.0<\/span>},\n              <span class=\"hljs-string\">\"right_outer\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">406.5<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">300.2<\/span>},\n              <span class=\"hljs-string\">\"left_pupil\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">278.3<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">309.4<\/span>},\n              <span class=\"hljs-string\">\"right_pupil\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">386.0<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">298.7<\/span>}},\n            <span class=\"hljs-string\">\"nose\"<\/span>: \n             {<span class=\"hljs-string\">\"tip\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">341.6<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">381.6<\/span>},\n              <span class=\"hljs-string\">\"root_left\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">321.9<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">314.6<\/span>},\n              <span class=\"hljs-string\">\"root_right\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">343.6<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">311.8<\/span>},\n              <span class=\"hljs-string\">\"left_alar_top\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">312.7<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">359.7<\/span>},\n              <span class=\"hljs-string\">\"right_alar_top\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">359.2<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">351.2<\/span>},\n              <span class=\"hljs-string\">\"left_alar_out_tip\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">305.4<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">380.4<\/span>},\n              <span class=\"hljs-string\">\"right_alar_out_tip\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">374.3<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">367.5<\/span>}}}}]}}},\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<h2>Dynamic image transformation with facial attribute detection<\/h2>\n<p>Cloudinary supports on-the-fly image transformation using simple parameters in HTTP delivery URLs. Based on the position of facial attributes detected by the Advanced Facial Attribute Detection add-on, Cloudinary can crop your images to focus on the detected facial features, while providing a large set of <a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations\">image transformation<\/a> and cropping options when using a Cloudinary delivery URL. To focus an automatic crop on the detected faces, simply set the <code>crop<\/code> parameter to <code>thumb<\/code>, <code>fill<\/code> or <code>crop<\/code> and the <code>gravity<\/code> parameter to <code>adv_faces<\/code> (set <code>gravity<\/code> to <code>adv_face<\/code> for focusing on the single largest detected face in the image). The resulting images are dynamically generated on-the-fly and the result is delivered via a fast CDN.<\/p>\n<p>For example, to deliver a 300&#215;300 thumbnail of the <code>lady<\/code> image shown above:<\/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;lady.jpg\\&quot;, {gravity: \\&quot;adv_face\\&quot;, height: 300, width: 300, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;lady.jpg\\&quot;, {gravity: \\&quot;adv_face\\&quot;, height: 300, width: 300, 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;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(300)\\n    .height(300)\\n    .gravity(focusOn(\\&quot;advanced_face\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(300)\\n    .height(300)\\n    .gravity(focusOn(\\&quot;advanced_face\\&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;lady.jpg\\&quot; &gt; &lt;Transformation gravity=\\&quot;adv_face\\&quot; height=\\&quot;300\\&quot; width=\\&quot;300\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;lady.jpg\\&quot; &gt;\\n\\t&lt;Transformation gravity=\\&quot;adv_face\\&quot; height=\\&quot;300\\&quot; width=\\&quot;300\\&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;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(300)\\n    .height(300)\\n    .gravity(focusOn(\\&quot;advanced_face\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(300)\\n    .height(300)\\n    .gravity(focusOn(\\&quot;advanced_face\\&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;lady.jpg\\&quot; &gt; &lt;cld-transformation gravity=\\&quot;adv_face\\&quot; height=\\&quot;300\\&quot; width=\\&quot;300\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;lady.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation gravity=\\&quot;adv_face\\&quot; height=\\&quot;300\\&quot; width=\\&quot;300\\&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;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(300)\\n    .height(300)\\n    .gravity(focusOn(\\&quot;advanced_face\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(300)\\n    .height(300)\\n    .gravity(focusOn(\\&quot;advanced_face\\&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;lady.jpg\\&quot; &gt; &lt;cl-transformation gravity=\\&quot;adv_face\\&quot; height=\\&quot;300\\&quot; width=\\&quot;300\\&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;lady.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation gravity=\\&quot;adv_face\\&quot; height=\\&quot;300\\&quot; width=\\&quot;300\\&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;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(300)\\n    .height(300)\\n    .gravity(focusOn(\\&quot;advanced_face\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(300)\\n    .height(300)\\n    .gravity(focusOn(\\&quot;advanced_face\\&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;lady.jpg&#039;, {gravity: \\&quot;adv_face\\&quot;, height: 300, width: 300, crop: \\&quot;thumb\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;lady.jpg&#039;, {gravity: \\&quot;adv_face\\&quot;, height: 300, width: 300, 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;lady.jpg\\&quot;).image(gravity=\\&quot;adv_face\\&quot;, height=300, width=300, crop=\\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;lady.jpg\\&quot;).image(gravity=\\&quot;adv_face\\&quot;, height=300, width=300, 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;lady.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(300)\\n-&gt;height(300)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\&quot;advanced_face\\&quot;))\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;lady.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(300)\\n-&gt;height(300)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\&quot;advanced_face\\&quot;))\\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;lady.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;adv_face\\&quot;, \\&quot;height\\&quot;=&gt;300, \\&quot;width\\&quot;=&gt;300, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;lady.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;adv_face\\&quot;, \\&quot;height\\&quot;=&gt;300, \\&quot;width\\&quot;=&gt;300, \\&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;adv_face\\&quot;).height(300).width(300).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().gravity(\\&quot;adv_face\\&quot;).height(300).width(300).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;lady.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;lady.jpg\\&quot;, gravity: \\&quot;adv_face\\&quot;, height: 300, width: 300, crop: \\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;lady.jpg\\&quot;, gravity: \\&quot;adv_face\\&quot;, height: 300, width: 300, 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;adv_face\\&quot;).Height(300).Width(300).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;lady.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Gravity(\\&quot;adv_face\\&quot;).Height(300).Width(300).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;lady.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;lady.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(300)\\n.height(300)\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;advanced_face\\&quot;))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;lady.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(300)\\n.height(300)\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;advanced_face\\&quot;))\\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;adv_face\\&quot;).setHeight(300).setWidth(300).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;lady.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setGravity(\\&quot;adv_face\\&quot;).setHeight(300).setWidth(300).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;lady.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;adv_face\\&quot;).height(300).width(300).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().gravity(\\&quot;adv_face\\&quot;).height(300).width(300).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;lady.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;lady.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(300)\\n.height(300)\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;advanced_face\\&quot;))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;lady.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(300)\\n.height(300)\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;advanced_face\\&quot;))\\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;lady.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(300)\\n height(300)\\n\\t gravity(\\n\\tGravity.focusOn(\\&quot;advanced_face\\&quot;))\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;lady.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(300)\\n height(300)\\n\\t gravity(\\n\\tGravity.focusOn(\\&quot;advanced_face\\&quot;))\\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;lady.jpg\\&quot;, {gravity: \\&quot;adv_face\\&quot;, height: 300, width: 300, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;lady.jpg\\&quot;, {gravity: \\&quot;adv_face\\&quot;, height: 300, width: 300, 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;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(300)\\n    .height(300)\\n    .gravity(focusOn(\\&quot;advanced_face\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(300)\\n    .height(300)\\n    .gravity(focusOn(\\&quot;advanced_face\\&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\\\/demo\\\/image\\\/upload\\\/c_thumb,g_adv_face,h_300,w_300\\\/lady.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&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;adv_face&quot;,&quot;height&quot;:&quot;300&quot;,&quot;width&quot;:&quot;300&quot;}],&quot;transformation_string&quot;:&quot;c_thumb,g_adv_face,h_300,w_300&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;lady.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_thumb,g_adv_face,h_300,w_300\/lady.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_thumb,g_adv_face,h_300,w_300\/lady.jpg\" alt=\"150x150 thumbnail of lady.jpg\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"300\" height=\"300\"\/><\/a><\/p>\n<p>Cloudinary can also dynamically crop your images based on the position of detected eyes. Simply set the <code>gravity<\/code> parameter to <code>adv_eyes<\/code> (<code>g_adv_eyes<\/code> for URLs) to center the image on the detected eyes. The example below delivers a 200&#215;60 thumbnail centered on the eyes:<\/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;lady.jpg\\&quot;, {gravity: \\&quot;adv_eyes\\&quot;, width: 200, height: 60, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;lady.jpg\\&quot;, {gravity: \\&quot;adv_eyes\\&quot;, width: 200, height: 60, 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;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(advancedEyes()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(advancedEyes()))\\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;lady.jpg\\&quot; &gt; &lt;Transformation gravity=\\&quot;adv_eyes\\&quot; width=\\&quot;200\\&quot; height=\\&quot;60\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;lady.jpg\\&quot; &gt;\\n\\t&lt;Transformation gravity=\\&quot;adv_eyes\\&quot; width=\\&quot;200\\&quot; height=\\&quot;60\\&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;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(advancedEyes()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(advancedEyes()))\\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;lady.jpg\\&quot; &gt; &lt;cld-transformation gravity=\\&quot;adv_eyes\\&quot; width=\\&quot;200\\&quot; height=\\&quot;60\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;lady.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation gravity=\\&quot;adv_eyes\\&quot; width=\\&quot;200\\&quot; height=\\&quot;60\\&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;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(advancedEyes()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(advancedEyes()))\\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;lady.jpg\\&quot; &gt; &lt;cl-transformation gravity=\\&quot;adv_eyes\\&quot; width=\\&quot;200\\&quot; height=\\&quot;60\\&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;lady.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation gravity=\\&quot;adv_eyes\\&quot; width=\\&quot;200\\&quot; height=\\&quot;60\\&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;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(advancedEyes()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(advancedEyes()))\\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;lady.jpg&#039;, {gravity: \\&quot;adv_eyes\\&quot;, width: 200, height: 60, crop: \\&quot;thumb\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;lady.jpg&#039;, {gravity: \\&quot;adv_eyes\\&quot;, width: 200, height: 60, 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;lady.jpg\\&quot;).image(gravity=\\&quot;adv_eyes\\&quot;, width=200, height=60, crop=\\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;lady.jpg\\&quot;).image(gravity=\\&quot;adv_eyes\\&quot;, width=200, height=60, 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;lady.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(200)\\n-&gt;height(60)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::advancedEyes()))\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;lady.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(200)\\n-&gt;height(60)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::advancedEyes()))\\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;lady.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;adv_eyes\\&quot;, \\&quot;width\\&quot;=&gt;200, \\&quot;height\\&quot;=&gt;60, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;lady.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;adv_eyes\\&quot;, \\&quot;width\\&quot;=&gt;200, \\&quot;height\\&quot;=&gt;60, \\&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;adv_eyes\\&quot;).width(200).height(60).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().gravity(\\&quot;adv_eyes\\&quot;).width(200).height(60).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;lady.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;lady.jpg\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, width: 200, height: 60, crop: \\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;lady.jpg\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, width: 200, height: 60, 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;adv_eyes\\&quot;).Width(200).Height(60).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;lady.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Gravity(\\&quot;adv_eyes\\&quot;).Width(200).Height(60).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;lady.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;lady.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(200)\\n.height(60)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;lady.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(200)\\n.height(60)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\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;adv_eyes\\&quot;).setWidth(200).setHeight(60).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;lady.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setGravity(\\&quot;adv_eyes\\&quot;).setWidth(200).setHeight(60).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;lady.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;adv_eyes\\&quot;).width(200).height(60).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().gravity(\\&quot;adv_eyes\\&quot;).width(200).height(60).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;lady.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;lady.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(200)\\n.height(60)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;lady.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(200)\\n.height(60)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\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;lady.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(200)\\n height(60)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;lady.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(200)\\n height(60)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\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;lady.jpg\\&quot;, {gravity: \\&quot;adv_eyes\\&quot;, width: 200, height: 60, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;lady.jpg\\&quot;, {gravity: \\&quot;adv_eyes\\&quot;, width: 200, height: 60, 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;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(advancedEyes()))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(advancedEyes()))\\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\\\/demo\\\/image\\\/upload\\\/c_thumb,g_adv_eyes,w_200,h_60\\\/lady.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&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;adv_eyes&quot;,&quot;width&quot;:&quot;200&quot;,&quot;height&quot;:&quot;60&quot;}],&quot;transformation_string&quot;:&quot;c_thumb,g_adv_eyes,w_200,h_60&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;lady.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_thumb,g_adv_eyes,w_200,h_60\/lady.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_thumb,g_adv_eyes,w_200,h_60\/lady.jpg\" alt=\"200x60 thumbnail centered on eyes\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"200\" height=\"60\"\/><\/a><\/p>\n<p>Thanks to the detailed information on the position of facial attributes detected by the Advanced Facial Attribute Detection add-on, Cloudinary can add overlays while taking into account the pose of the face, and automatically scale and rotate the overlay accordingly.<\/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;HarlequinMask.jpg\\&quot;, {width: 150, crop: \\&quot;scale\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;HarlequinMask.jpg\\&quot;, {width: 150, crop: \\&quot;scale\\&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;HarlequinMask.jpg\\&quot;).resize(scale().width(150));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;).resize(scale().width(150));&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;HarlequinMask.jpg\\&quot; &gt; &lt;Transformation width=\\&quot;150\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;HarlequinMask.jpg\\&quot; &gt;\\n\\t&lt;Transformation width=\\&quot;150\\&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;HarlequinMask.jpg\\&quot;).resize(scale().width(150));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;).resize(scale().width(150));&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;HarlequinMask.jpg\\&quot; &gt; &lt;cld-transformation width=\\&quot;150\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;HarlequinMask.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation width=\\&quot;150\\&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;HarlequinMask.jpg\\&quot;).resize(scale().width(150));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;).resize(scale().width(150));&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;HarlequinMask.jpg\\&quot; &gt; &lt;cl-transformation width=\\&quot;150\\&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;HarlequinMask.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation width=\\&quot;150\\&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;HarlequinMask.jpg\\&quot;).resize(scale().width(150));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;).resize(scale().width(150));&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;HarlequinMask.jpg&#039;, {width: 150, crop: \\&quot;scale\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;HarlequinMask.jpg&#039;, {width: 150, crop: \\&quot;scale\\&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;HarlequinMask.jpg\\&quot;).image(width=150, crop=\\&quot;scale\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;).image(width=150, crop=\\&quot;scale\\&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;HarlequinMask.jpg&#039;))\\n\\t-&gt;resize(Resize::scale()-&gt;width(150));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;HarlequinMask.jpg&#039;))\\n\\t-&gt;resize(Resize::scale()-&gt;width(150));&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;HarlequinMask.jpg\\&quot;, array(\\&quot;width\\&quot;=&gt;150, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;HarlequinMask.jpg\\&quot;, array(\\&quot;width\\&quot;=&gt;150, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&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(150).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().width(150).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;HarlequinMask.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;HarlequinMask.jpg\\&quot;, width: 150, crop: \\&quot;scale\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;HarlequinMask.jpg\\&quot;, width: 150, crop: \\&quot;scale\\&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(150).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;HarlequinMask.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(150).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;HarlequinMask.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;HarlequinMask.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(150)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;HarlequinMask.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(150)));&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(150).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;HarlequinMask.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setWidth(150).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;HarlequinMask.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(150).crop(\\&quot;scale\\&quot;)).generate(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().width(150).crop(\\&quot;scale\\&quot;)).generate(\\&quot;HarlequinMask.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;HarlequinMask.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(150)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;HarlequinMask.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(150)));&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;HarlequinMask.jpg\\&quot;)\\n\\t resize(Resize.scale() { width(150) }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;HarlequinMask.jpg\\&quot;)\\n\\t resize(Resize.scale() { width(150) }) \\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;HarlequinMask.jpg\\&quot;, {width: 150, crop: \\&quot;scale\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;HarlequinMask.jpg\\&quot;, {width: 150, crop: \\&quot;scale\\&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;HarlequinMask.jpg\\&quot;).resize(scale().width(150));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;).resize(scale().width(150));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/upload\\\/w_150\\\/HarlequinMask.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&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;width&quot;:&quot;150&quot;}],&quot;transformation_string&quot;:&quot;w_150&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;HarlequinMask.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_150\/HarlequinMask.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_150\/HarlequinMask.jpg\" alt=\"Harlequin mask\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"150\" height=\"60\"\/><\/a><\/p>\n<p>For example, in order to automatically overlay the above image of a harlequin mask scaled to 170% relative to the detected eyes in the main 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;lady.jpg\\&quot;, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: \\&quot;HarlequinMask\\&quot;, width: \\&quot;1.7\\&quot;, crop: \\&quot;scale\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;lady.jpg\\&quot;, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: \\&quot;HarlequinMask\\&quot;, width: \\&quot;1.7\\&quot;, crop: \\&quot;scale\\&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;lady.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.7).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(advancedEyes())))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.7).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(advancedEyes())))\\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;lady.jpg\\&quot; &gt; &lt;Transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;adv_eyes\\&quot; overlay=\\&quot;HarlequinMask\\&quot; width=\\&quot;1.7\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;lady.jpg\\&quot; &gt;\\n\\t&lt;Transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;adv_eyes\\&quot; overlay=\\&quot;HarlequinMask\\&quot; width=\\&quot;1.7\\&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;lady.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.7).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(advancedEyes())))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.7).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(advancedEyes())))\\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;lady.jpg\\&quot; &gt; &lt;cld-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;adv_eyes\\&quot; :overlay=\\&quot;HarlequinMask\\&quot; width=\\&quot;1.7\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;lady.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;adv_eyes\\&quot; :overlay=\\&quot;HarlequinMask\\&quot; width=\\&quot;1.7\\&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;lady.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.7).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(advancedEyes())))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.7).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(advancedEyes())))\\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;lady.jpg\\&quot; &gt; &lt;cl-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;adv_eyes\\&quot; overlay=\\&quot;HarlequinMask\\&quot; width=\\&quot;1.7\\&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;lady.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;adv_eyes\\&quot; overlay=\\&quot;HarlequinMask\\&quot; width=\\&quot;1.7\\&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;lady.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.7).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(advancedEyes())))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.7).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(advancedEyes())))\\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;lady.jpg&#039;, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;HarlequinMask\\&quot;), width: \\&quot;1.7\\&quot;, crop: \\&quot;scale\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;lady.jpg&#039;, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;HarlequinMask\\&quot;), width: \\&quot;1.7\\&quot;, crop: \\&quot;scale\\&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;lady.jpg\\&quot;).image(flags=\\&quot;region_relative\\&quot;, gravity=\\&quot;adv_eyes\\&quot;, overlay=\\&quot;HarlequinMask\\&quot;, width=\\&quot;1.7\\&quot;, crop=\\&quot;scale\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;lady.jpg\\&quot;).image(flags=\\&quot;region_relative\\&quot;, gravity=\\&quot;adv_eyes\\&quot;, overlay=\\&quot;HarlequinMask\\&quot;, width=\\&quot;1.7\\&quot;, crop=\\&quot;scale\\&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;lady.jpg&#039;))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;HarlequinMask\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(1.7)\\n\\t-&gt;regionRelative()\\n\\t))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::advancedEyes()))\\n\\t)\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;lady.jpg&#039;))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;HarlequinMask\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(1.7)\\n\\t-&gt;regionRelative()\\n\\t))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::advancedEyes()))\\n\\t)\\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;lady.jpg\\&quot;, array(\\&quot;flags\\&quot;=&gt;\\&quot;region_relative\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;adv_eyes\\&quot;, \\&quot;overlay\\&quot;=&gt;\\&quot;HarlequinMask\\&quot;, \\&quot;width\\&quot;=&gt;\\&quot;1.7\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;lady.jpg\\&quot;, array(\\&quot;flags\\&quot;=&gt;\\&quot;region_relative\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;adv_eyes\\&quot;, \\&quot;overlay\\&quot;=&gt;\\&quot;HarlequinMask\\&quot;, \\&quot;width\\&quot;=&gt;\\&quot;1.7\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&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().flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;adv_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;HarlequinMask\\&quot;)).width(1.7).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;adv_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;HarlequinMask\\&quot;)).width(1.7).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;lady.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;lady.jpg\\&quot;, flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: \\&quot;HarlequinMask\\&quot;, width: 1.7, crop: \\&quot;scale\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;lady.jpg\\&quot;, flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: \\&quot;HarlequinMask\\&quot;, width: 1.7, crop: \\&quot;scale\\&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().Flags(\\&quot;region_relative\\&quot;).Gravity(\\&quot;adv_eyes\\&quot;).Overlay(new Layer().PublicId(\\&quot;HarlequinMask\\&quot;)).Width(1.7).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;lady.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Flags(\\&quot;region_relative\\&quot;).Gravity(\\&quot;adv_eyes\\&quot;).Overlay(new Layer().PublicId(\\&quot;HarlequinMask\\&quot;)).Width(1.7).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;lady.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;lady.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;HarlequinMask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.7)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t)\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;lady.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;HarlequinMask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.7)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t)\\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().setFlags(\\&quot;region_relative\\&quot;).setGravity(\\&quot;adv_eyes\\&quot;).setOverlay(\\&quot;HarlequinMask\\&quot;).setWidth(1.7).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;lady.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setFlags(\\&quot;region_relative\\&quot;).setGravity(\\&quot;adv_eyes\\&quot;).setOverlay(\\&quot;HarlequinMask\\&quot;).setWidth(1.7).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;lady.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().flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;adv_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;HarlequinMask\\&quot;)).width(1.7).crop(\\&quot;scale\\&quot;)).generate(\\&quot;lady.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;adv_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;HarlequinMask\\&quot;)).width(1.7).crop(\\&quot;scale\\&quot;)).generate(\\&quot;lady.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;lady.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;HarlequinMask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.7)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t)\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;lady.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;HarlequinMask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.7)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t)\\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;lady.jpg\\&quot;)\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;HarlequinMask\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(1.7F)\\n\\t regionRelative()\\n\\t }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t })\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;lady.jpg\\&quot;)\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;HarlequinMask\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(1.7F)\\n\\t regionRelative()\\n\\t }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.advancedEyes()))\\n\\t })\\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;lady.jpg\\&quot;, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;HarlequinMask\\&quot;), width: \\&quot;1.7\\&quot;, crop: \\&quot;scale\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;lady.jpg\\&quot;, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;adv_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;HarlequinMask\\&quot;), width: \\&quot;1.7\\&quot;, crop: \\&quot;scale\\&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;lady.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.7).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(advancedEyes())))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;lady.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.7).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(advancedEyes())))\\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\\\/demo\\\/image\\\/upload\\\/c_scale,fl_region_relative,g_adv_eyes,l_HarlequinMask,w_1.7\\\/lady.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&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;scale&quot;,&quot;flags&quot;:&quot;region_relative&quot;,&quot;gravity&quot;:&quot;adv_eyes&quot;,&quot;overlay&quot;:&quot;HarlequinMask&quot;,&quot;width&quot;:&quot;1.7&quot;}],&quot;transformation_string&quot;:&quot;c_scale,fl_region_relative,g_adv_eyes,l_HarlequinMask,w_1.7&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;lady.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_scale,fl_region_relative,g_adv_eyes,l_HarlequinMask,w_1.7\/lady.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_scale,fl_region_relative,g_adv_eyes,l_HarlequinMask,w_1.7\/w_300\/lady.jpg\" alt=\"Harlequin masked face\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"300\" height=\"450\"\/><\/a><\/p>\n<p>See the <a href=\"https:\/\/cloudinary.com\/documentation\/advanced_facial_attributes_detection_addon\">Advanced Facial Attribute Detection documentation<\/a> for more information on the features available with the add-on and how to use them.<\/p>\n<h2>Summary<\/h2>\n<p>The Advanced Facial Attribute Detection add-on powered by Cloudinary and the Face API of Microsoft\u2019s Cognitive Services provides a high precision mechanism that can analyze images and create the best crop for most sites as well as automatically add the nice artistic effects of exact overlay placing. The integration within Cloudinary\u2019s pipeline is seamless and dynamic using simple transformation URLs.<\/p>\n<p>We are excited to enter into this partnership with Microsoft\u2019s Cognitive Services so give the add-on a try. The <a href=\"https:\/\/cloudinary.com\/documentation\/advanced_facial_attributes_detection_addon\">Advanced Facial Attribute Detection add-on<\/a> is available to all our free and paid plans.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":23398,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[91,92,113,165,176,183,214,229,257],"class_list":["post-21368","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-django","tag-dotnet","tag-face-detection","tag-image-transformation","tag-java","tag-jquery","tag-node","tag-php","tag-ruby-on-rails"],"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>Facial Attribute Detection with Microsoft&#039;s Face API<\/title>\n<meta name=\"description\" content=\"How to extract detailed facial attributes from images, enabling categorization and overlay using Cloudinary and Microsoft&#039;s Face API.\" \/>\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\/facial_attribute_detection_with_microsoft_s_face_api\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Facial Attribute Detection with Microsoft&#039;s Face API and Cloudinary\" \/>\n<meta property=\"og:description\" content=\"How to extract detailed facial attributes from images, enabling categorization and overlay using Cloudinary and Microsoft&#039;s Face API.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-14T12:14:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-23T19:25:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1647048349\/59_facial_attribute_detection\/59_facial_attribute_detection-jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\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\/facial_attribute_detection_with_microsoft_s_face_api#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Facial Attribute Detection with Microsoft&#8217;s Face API and Cloudinary\",\"datePublished\":\"2016-04-14T12:14:35+00:00\",\"dateModified\":\"2025-03-23T19:25:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api\"},\"wordCount\":10,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1647048349\/59_facial_attribute_detection\/59_facial_attribute_detection.jpg?_i=AA\",\"keywords\":[\"Django\",\"DotNet\",\"Face Detection\",\"Image Transformation\",\"Java\",\"jQuery\",\"Node\",\"PHP\",\"Ruby on Rails\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2016\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api\",\"url\":\"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api\",\"name\":\"Facial Attribute Detection with Microsoft's Face API\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1647048349\/59_facial_attribute_detection\/59_facial_attribute_detection.jpg?_i=AA\",\"datePublished\":\"2016-04-14T12:14:35+00:00\",\"dateModified\":\"2025-03-23T19:25:53+00:00\",\"description\":\"How to extract detailed facial attributes from images, enabling categorization and overlay using Cloudinary and Microsoft's Face API.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1647048349\/59_facial_attribute_detection\/59_facial_attribute_detection.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1647048349\/59_facial_attribute_detection\/59_facial_attribute_detection.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Facial Attribute Detection with Microsoft&#8217;s Face API and 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":"Facial Attribute Detection with Microsoft's Face API","description":"How to extract detailed facial attributes from images, enabling categorization and overlay using Cloudinary and Microsoft's Face API.","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\/facial_attribute_detection_with_microsoft_s_face_api","og_locale":"en_US","og_type":"article","og_title":"Facial Attribute Detection with Microsoft's Face API and Cloudinary","og_description":"How to extract detailed facial attributes from images, enabling categorization and overlay using Cloudinary and Microsoft's Face API.","og_url":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api","og_site_name":"Cloudinary Blog","article_published_time":"2016-04-14T12:14:35+00:00","article_modified_time":"2025-03-23T19:25:53+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1647048349\/59_facial_attribute_detection\/59_facial_attribute_detection-jpg?_i=AA","type":"image\/jpeg"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api"},"author":{"name":"","@id":""},"headline":"Facial Attribute Detection with Microsoft&#8217;s Face API and Cloudinary","datePublished":"2016-04-14T12:14:35+00:00","dateModified":"2025-03-23T19:25:53+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api"},"wordCount":10,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1647048349\/59_facial_attribute_detection\/59_facial_attribute_detection.jpg?_i=AA","keywords":["Django","DotNet","Face Detection","Image Transformation","Java","jQuery","Node","PHP","Ruby on Rails"],"inLanguage":"en-US","copyrightYear":"2016","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api","url":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api","name":"Facial Attribute Detection with Microsoft's Face API","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1647048349\/59_facial_attribute_detection\/59_facial_attribute_detection.jpg?_i=AA","datePublished":"2016-04-14T12:14:35+00:00","dateModified":"2025-03-23T19:25:53+00:00","description":"How to extract detailed facial attributes from images, enabling categorization and overlay using Cloudinary and Microsoft's Face API.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1647048349\/59_facial_attribute_detection\/59_facial_attribute_detection.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1647048349\/59_facial_attribute_detection\/59_facial_attribute_detection.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/facial_attribute_detection_with_microsoft_s_face_api#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Facial Attribute Detection with Microsoft&#8217;s Face API and 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\/v1647048349\/59_facial_attribute_detection\/59_facial_attribute_detection.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21368","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=21368"}],"version-history":[{"count":3,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21368\/revisions"}],"predecessor-version":[{"id":37247,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21368\/revisions\/37247"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/23398"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=21368"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=21368"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=21368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}