{"id":21466,"date":"2017-02-08T15:37:38","date_gmt":"2017-02-08T15:37:38","guid":{"rendered":"http:\/\/the_many_faces_of_on_the_fly_face_detection"},"modified":"2024-10-02T16:19:11","modified_gmt":"2024-10-02T23:19:11","slug":"the_many_faces_of_on_the_fly_face_detection","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection","title":{"rendered":"Perform Face-Detection Transformation Techniques On-the-Fly with Cloudinary"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p>With the decreasing price-performance ratio of computing, research efforts in <strong>face detection<\/strong> and <strong>face recognition<\/strong> algorithms are rapidly expanding and new techniques for both of these are achieving greater accuracy and reduced processing time.<\/p>\n<h2>What Is Face Detection?<\/h2>\n<p><strong>Face detection<\/strong> is a technology that identifies whether and where human faces are located in digital images. It\u2019s commonly used in cameras, security applications, graphic applications, and a variety of other web and mobile apps. It is also a prerequisite for face recognition, which uses a database and additional algorithms to match a detected face with a specific individual.<\/p>\n<p>A large percentage of the images in most websites and apps include <strong>photos of people<\/strong> \u2013 from profile pics to news articles to group selfies. These photos need to be displayed in sizes, shapes, and styles that match the site design. Performing automatic face cropping or otherwise programmatically modifying images that contain faces necessitates a reliable face detection technology.\nThe reliability can be affected by the colors, or lack of colors in the image, the direction a person is facing, the tilt of the head, the size of a face, the complexity of the background, lighting, and more.<\/p>\n<h2>Cloudinary\u2019s Face Detection Solution<\/h2>\n<p>Cloudinary provides a complete image and video management solution for web and mobile app programmers. Our solution includes a <strong>built-in image face detection<\/strong> functionality and several face-detection features you can take advantage of in your own apps. In most cases, applying this functionality is just a question of adding a parameter or two to your image delivery URLs\u2026 and your own creativity, of-course.<\/p>\n<p>Cloudinary recently updated its face detection technology. The new technology is now <strong>very efficient and precise<\/strong>, including many \u201cdifficult\u201d scenarios such as side portraits, blurry faces, tricky lighting, and more.<\/p>\n<p>For example, the people in these images are now easily detected despite low lighting, unusual shadows, black and white images, turned heads and closed eyes:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary\/image\/upload\/w_400\/dark_portrait_detected.jpg\" alt=\"low-lighting face detected\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"400\" height=\"267\"\/>\n<br style=\"clear:both\">\u00a0<\/br>\n<img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary\/image\/upload\/w_400\/man-shadow_detected.jpg\" alt=\"face in shadow detected\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"400\" height=\"264\"\/>\n<br\/>\n<img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary\/image\/upload\/w_400\/side_bw_detected.jpg\" alt=\"side-facing, black and white faces detected\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"400\" height=\"265\"\/><\/p>\n<p style=\"clear:both\">&nbsp;<\/p>\nWhen you deliver an image URL that includes face-detection transformations, the faces in the original photo are detected on-the-fly, the requested transformations are performed in the cloud, and then the final image is delivered via CDN.\n<p>The rest of this blog will cover some of the many ways that developers can automatically transform proprietary and user-generated photos containing faces to fit the needs and design of a website or app.<\/p>\n<h2>Facing it head on<\/h2>\n<p>Perhaps one of the most common uses of face detection is for cropping. A large percentage of images, especially with user-generated content, contain photos of people.<\/p>\n<p>Headshots are needed for profile pictures, chat heads, and more, but the original uploaded photo may include much more than just a face, and that face may not even be the central element in the photo. Group selfies are also popular, and rarely centered, so again, we need to be very careful that even if we crop the photo to a different aspect ratio, we don\u2019t lose any of the crew.<\/p>\n<p>In short, it\u2019s critical in most situations that when we resize and crop uploaded photos, we keep our users\u2019 faces up front and center. There are a variety of features you can use or combine to ensure this.<\/p>\n<h3>Gravity is the key<\/h3>\n<p>When cropping photos intended for profile pictures or other headshots, you will usually want to use <code>face<\/code> as your cropping <code>gravity<\/code> (<code>g_face<\/code> in URLs). This ensures that the detected face (or largest face if there is more than one) will be the center of the cropped photo, regardless of its initial location.<\/p>\n<p>If in conjunction with <code>face<\/code> gravity, you use <code>thumb<\/code> as your <code>crop<\/code> method, you will get a crop that\u2019s as tight as possible (given the cropping dimensions) to the detected face coordinates.<\/p>\n<p>You can further adjust your thumbnail cropping by setting a <code>zoom<\/code> value, to zoom in or out from the detected face coordinates. And then of-course you can add any other transformations you want.<\/p>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<div style=\"text-align:center;\">\n<span style=\"display:inline-block;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/h_200\/teen_facedown\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/h_200\/teen_facedown\" alt=\"Original photo\" title=\"Original photo\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<i><font size=\"-1\">Original photo<\/font><\/i>\n<p><\/span><span style=\"display:inline-block;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_200,h_200,g_face,c_fill\/teen_facedown\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_200,h_200,g_face,c_fill\/teen_facedown\" alt=\"Cropped to a square using face detection\" title=\"Cropped to a square using face detection\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<i><font size=\"-1\">Cropped to a square using face detection<\/font><\/i>\n<\/span><\/p>\n<span style=\"display:inline-block;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_200,h_200,g_face,c_thumb\/teen_facedown\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_200,h_200,g_face,c_thumb\/teen_facedown\" alt=\"Cropped using face detection with thumbnail cropping\" title=\"Cropped using face detection with thumbnail cropping\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<i><font size=\"-1\">Cropped using face detection<br\/>with thumbnail cropping<\/font><\/i> \n<\/span>\n<span style=\"display:inline-block;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_200,h_200,g_face,c_thumb,z_0.65\/teen_facedown\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_200,h_200,g_face,c_thumb,z_0.65\/teen_facedown\" alt=\"Face detection, thumbnail crop, zoomed out a bit\" title=\"Face detection, thumbnail crop, zoomed out a bit\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<i><font size=\"-1\">Face detection, thumbnail crop,<br\/>zoomed out a bit<\/font><\/i>\n<\/span>\n<span style=\"display:inline-block;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_200,h_200,g_face,c_thumb,z_0.65,r_max,e_improve\/e_shadow\/teen_facedown\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_200,h_200,g_face,c_thumb,z_0.65,r_max,e_improve\/e_shadow\/teen_facedown\" alt=\"Same as previous with circle shape, shadow, and improve effect\" title=\"Same as previous with circle shape, shadow, and improve effect\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<i><font size=\"-1\">Same as previous with circle shape,<br\/>shadow, and improve effect<\/font><\/i>\n<\/span>\n<\/div>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<p>Here\u2019s what the delivery code looks like for that last photo:\n<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;teen_facedown\\&quot;, {transformation: [ {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.65\\&quot;, radius: \\&quot;max\\&quot;, effect: \\&quot;improve\\&quot;, crop: \\&quot;thumb\\&quot;}, {effect: \\&quot;shadow\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;teen_facedown\\&quot;, {transformation: [\\n  {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.65\\&quot;, radius: \\&quot;max\\&quot;, effect: \\&quot;improve\\&quot;, crop: \\&quot;thumb\\&quot;},\\n  {effect: \\&quot;shadow\\&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;teen_facedown\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .adjust(improve())\\n  .effect(shadow());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;teen_facedown\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .adjust(improve())\\n  .effect(shadow());&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;teen_facedown\\&quot; &gt; &lt;Transformation width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; zoom=\\&quot;0.65\\&quot; radius=\\&quot;max\\&quot; effect=\\&quot;improve\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;Transformation effect=\\&quot;shadow\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;teen_facedown\\&quot; &gt;\\n\\t&lt;Transformation width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; zoom=\\&quot;0.65\\&quot; radius=\\&quot;max\\&quot; effect=\\&quot;improve\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n\\t&lt;Transformation effect=\\&quot;shadow\\&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;teen_facedown\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .adjust(improve())\\n  .effect(shadow());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;teen_facedown\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .adjust(improve())\\n  .effect(shadow());&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;teen_facedown\\&quot; &gt; &lt;cld-transformation width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; zoom=\\&quot;0.65\\&quot; radius=\\&quot;max\\&quot; effect=\\&quot;improve\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;cld-transformation effect=\\&quot;shadow\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;teen_facedown\\&quot; &gt;\\n\\t&lt;cld-transformation width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; zoom=\\&quot;0.65\\&quot; radius=\\&quot;max\\&quot; effect=\\&quot;improve\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation effect=\\&quot;shadow\\&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;teen_facedown\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .adjust(improve())\\n  .effect(shadow());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;teen_facedown\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .adjust(improve())\\n  .effect(shadow());&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;teen_facedown\\&quot; &gt; &lt;cl-transformation width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; zoom=\\&quot;0.65\\&quot; radius=\\&quot;max\\&quot; effect=\\&quot;improve\\&quot; crop=\\&quot;thumb\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation effect=\\&quot;shadow\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;teen_facedown\\&quot; &gt;\\n\\t&lt;cl-transformation width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; zoom=\\&quot;0.65\\&quot; radius=\\&quot;max\\&quot; effect=\\&quot;improve\\&quot; crop=\\&quot;thumb\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation effect=\\&quot;shadow\\&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;teen_facedown\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .adjust(improve())\\n  .effect(shadow());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;teen_facedown\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .adjust(improve())\\n  .effect(shadow());&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;teen_facedown&#039;, {transformation: [ {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.65\\&quot;, radius: \\&quot;max\\&quot;, effect: \\&quot;improve\\&quot;, crop: \\&quot;thumb\\&quot;}, {effect: \\&quot;shadow\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;teen_facedown&#039;, {transformation: [\\n  {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.65\\&quot;, radius: \\&quot;max\\&quot;, effect: \\&quot;improve\\&quot;, crop: \\&quot;thumb\\&quot;},\\n  {effect: \\&quot;shadow\\&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;teen_facedown\\&quot;).image(transformation=[ {&#039;width&#039;: 200, &#039;height&#039;: 200, &#039;gravity&#039;: \\&quot;face\\&quot;, &#039;zoom&#039;: \\&quot;0.65\\&quot;, &#039;radius&#039;: \\&quot;max\\&quot;, &#039;effect&#039;: \\&quot;improve\\&quot;, &#039;crop&#039;: \\&quot;thumb\\&quot;}, {&#039;effect&#039;: \\&quot;shadow\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;teen_facedown\\&quot;).image(transformation=[\\n  {&#039;width&#039;: 200, &#039;height&#039;: 200, &#039;gravity&#039;: \\&quot;face\\&quot;, &#039;zoom&#039;: \\&quot;0.65\\&quot;, &#039;radius&#039;: \\&quot;max\\&quot;, &#039;effect&#039;: \\&quot;improve\\&quot;, &#039;crop&#039;: \\&quot;thumb\\&quot;},\\n  {&#039;effect&#039;: \\&quot;shadow\\&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;teen_facedown&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(200)\\n-&gt;height(200)\\n-&gt;zoom(0.65)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t)\\n\\t-&gt;roundCorners(RoundCorners::max())\\n\\t-&gt;adjust(Adjust::improve())\\n\\t-&gt;effect(Effect::shadow());&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;teen_facedown&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(200)\\n-&gt;height(200)\\n-&gt;zoom(0.65)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t)\\n\\t-&gt;roundCorners(RoundCorners::max())\\n\\t-&gt;adjust(Adjust::improve())\\n\\t-&gt;effect(Effect::shadow());&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;teen_facedown\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;width\\&quot;=&gt;200, \\&quot;height\\&quot;=&gt;200, \\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;zoom\\&quot;=&gt;\\&quot;0.65\\&quot;, \\&quot;radius\\&quot;=&gt;\\&quot;max\\&quot;, \\&quot;effect\\&quot;=&gt;\\&quot;improve\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;), array(\\&quot;effect\\&quot;=&gt;\\&quot;shadow\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;teen_facedown\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;width\\&quot;=&gt;200, \\&quot;height\\&quot;=&gt;200, \\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;zoom\\&quot;=&gt;\\&quot;0.65\\&quot;, \\&quot;radius\\&quot;=&gt;\\&quot;max\\&quot;, \\&quot;effect\\&quot;=&gt;\\&quot;improve\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;),\\n  array(\\&quot;effect\\&quot;=&gt;\\&quot;shadow\\&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(200).height(200).gravity(\\&quot;face\\&quot;).zoom(0.65).radius(\\&quot;max\\&quot;).effect(\\&quot;improve\\&quot;).crop(\\&quot;thumb\\&quot;).chain() .effect(\\&quot;shadow\\&quot;)).imageTag(\\&quot;teen_facedown\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .width(200).height(200).gravity(\\&quot;face\\&quot;).zoom(0.65).radius(\\&quot;max\\&quot;).effect(\\&quot;improve\\&quot;).crop(\\&quot;thumb\\&quot;).chain()\\n  .effect(\\&quot;shadow\\&quot;)).imageTag(\\&quot;teen_facedown\\&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;teen_facedown\\&quot;, transformation: [ {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: 0.65, radius: \\&quot;max\\&quot;, effect: \\&quot;improve\\&quot;, crop: \\&quot;thumb\\&quot;}, {effect: \\&quot;shadow\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;teen_facedown\\&quot;, transformation: [\\n  {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: 0.65, radius: \\&quot;max\\&quot;, effect: \\&quot;improve\\&quot;, crop: \\&quot;thumb\\&quot;},\\n  {effect: \\&quot;shadow\\&quot;}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(200).Height(200).Gravity(\\&quot;face\\&quot;).Zoom(0.65).Radius(\\&quot;max\\&quot;).Effect(\\&quot;improve\\&quot;).Crop(\\&quot;thumb\\&quot;).Chain() .Effect(\\&quot;shadow\\&quot;)).BuildImageTag(\\&quot;teen_facedown\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Width(200).Height(200).Gravity(\\&quot;face\\&quot;).Zoom(0.65).Radius(\\&quot;max\\&quot;).Effect(\\&quot;improve\\&quot;).Crop(\\&quot;thumb\\&quot;).Chain()\\n  .Effect(\\&quot;shadow\\&quot;)).BuildImageTag(\\&quot;teen_facedown\\&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;teen_facedown&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(200)\\n.height(200)\\n.zoom(0.65)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.roundCorners(RoundCorners.max())\\n\\t.adjust(Adjust.improve())\\n\\t.effect(Effect.shadow()));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;teen_facedown&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(200)\\n.height(200)\\n.zoom(0.65)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.roundCorners(RoundCorners.max())\\n\\t.adjust(Adjust.improve())\\n\\t.effect(Effect.shadow()));&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(200).setHeight(200).setGravity(\\&quot;face\\&quot;).setZoom(0.65).setRadius(\\&quot;max\\&quot;).setEffect(\\&quot;improve\\&quot;).setCrop(\\&quot;thumb\\&quot;).chain() .setEffect(\\&quot;shadow\\&quot;)).generate(\\&quot;teen_facedown\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setWidth(200).setHeight(200).setGravity(\\&quot;face\\&quot;).setZoom(0.65).setRadius(\\&quot;max\\&quot;).setEffect(\\&quot;improve\\&quot;).setCrop(\\&quot;thumb\\&quot;).chain()\\n  .setEffect(\\&quot;shadow\\&quot;)).generate(\\&quot;teen_facedown\\&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(200).height(200).gravity(\\&quot;face\\&quot;).zoom(0.65).radius(\\&quot;max\\&quot;).effect(\\&quot;improve\\&quot;).crop(\\&quot;thumb\\&quot;).chain() .effect(\\&quot;shadow\\&quot;)).generate(\\&quot;teen_facedown\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .width(200).height(200).gravity(\\&quot;face\\&quot;).zoom(0.65).radius(\\&quot;max\\&quot;).effect(\\&quot;improve\\&quot;).crop(\\&quot;thumb\\&quot;).chain()\\n  .effect(\\&quot;shadow\\&quot;)).generate(\\&quot;teen_facedown\\&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;teen_facedown&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_200,h_200,g_face,c_thumb,z_0.65,r_max,e_improve\\\/e_shadow\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;teen_facedown&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_200,h_200,g_face,c_thumb,z_0.65,r_max,e_improve\\\/e_shadow\\&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;teen_facedown\\&quot;)\\n\\t resize(Resize.thumbnail() { width(200)\\n height(200)\\n zoom(0.65F)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t })\\n\\t roundCorners(RoundCorners.max())\\n\\t adjust(Adjust.improve())\\n\\t effect(Effect.shadow()) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;teen_facedown\\&quot;)\\n\\t resize(Resize.thumbnail() { width(200)\\n height(200)\\n zoom(0.65F)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t })\\n\\t roundCorners(RoundCorners.max())\\n\\t adjust(Adjust.improve())\\n\\t effect(Effect.shadow()) \\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;teen_facedown\\&quot;, {transformation: [ {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.65\\&quot;, radius: \\&quot;max\\&quot;, effect: \\&quot;improve\\&quot;, crop: \\&quot;thumb\\&quot;}, {effect: \\&quot;shadow\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;teen_facedown\\&quot;, {transformation: [\\n  {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.65\\&quot;, radius: \\&quot;max\\&quot;, effect: \\&quot;improve\\&quot;, crop: \\&quot;thumb\\&quot;},\\n  {effect: \\&quot;shadow\\&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;teen_facedown\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .adjust(improve())\\n  .effect(shadow());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;teen_facedown\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .adjust(improve())\\n  .effect(shadow());&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_200,h_200,g_face,c_thumb,z_0.65,r_max,e_improve\\\/e_shadow\\\/teen_facedown&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;200&quot;,&quot;height&quot;:&quot;200&quot;,&quot;gravity&quot;:&quot;face&quot;,&quot;crop_mode&quot;:&quot;thumb&quot;,&quot;zoom&quot;:&quot;0.65&quot;,&quot;radius&quot;:&quot;max&quot;,&quot;effect&quot;:&quot;improve&quot;},{&quot;effect&quot;:&quot;shadow&quot;}],&quot;transformation_string&quot;:&quot;w_200,h_200,g_face,c_thumb,z_0.65,r_max,e_improve\\\/e_shadow&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;teen_facedown&quot;,&quot;extension&quot;:&quot;&quot;,&quot;format&quot;:&quot;&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><\/p>\n<p>Everything mentioned above works equally well for multiple faces. Just use <code>faces<\/code> gravity instead of <code>face<\/code>, and your cropping will be based on a rectangle that includes all detected faces.<\/p>\n<p>All of this assumes you can reasonably expect that the uploaded image is going to contain one or multiple faces as the main subject.<\/p>\n<p>Sometimes the main subject of an image isn\u2019t necessarily expected to be a person, but you still need to ensure you aren\u2019t cutting off people or other important content of the image. In this case, you can take advantage of the <code>auto<\/code> gravity feature. With this automated cropping method, the most prominent elements of the picture determine the cropping coordinates. Unless otherwise specified, any detected <code>faces<\/code> get a high priority in this cropping decision, but other prominent elements are also included.<\/p>\n<p>You can learn lots more about <code>auto<\/code> gravity in this <a href=\"https:\/\/cloudinary.com\/blog\/new_ai_based_image_auto_crop_algorithm_sticks_to_the_subject\">blog article<\/a> and this <a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations#automatic_cropping\">documentation<\/a>.<\/p>\n<h2>Losing face<\/h2>\n<p>There may be situations where you\u2019d like to keep the people in a photograph anonymous. In these cases, you can pixelate or blur all detected faces just by adding a single parameter to your image URL.<\/p>\n<p>In the example below, the faces that Cloudinary detects in the concert audience are generally those that could likely be identified by a human viewer. All of these faces are automatically blurred before the image is delivered, using the <code>blur_faces<\/code> effect.<\/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;concert_crowd\\&quot;, {effect: \\&quot;blur_faces:500\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;concert_crowd\\&quot;, {effect: \\&quot;blur_faces:500\\&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;concert_crowd\\&quot;).effect(\\n  blur()\\n    .strength(500)\\n    .region(faces())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;concert_crowd\\&quot;).effect(\\n  blur()\\n    .strength(500)\\n    .region(faces())\\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;concert_crowd\\&quot; &gt; &lt;Transformation effect=\\&quot;blur_faces:500\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;concert_crowd\\&quot; &gt;\\n\\t&lt;Transformation effect=\\&quot;blur_faces:500\\&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;concert_crowd\\&quot;).effect(\\n  blur()\\n    .strength(500)\\n    .region(faces())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;concert_crowd\\&quot;).effect(\\n  blur()\\n    .strength(500)\\n    .region(faces())\\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;concert_crowd\\&quot; &gt; &lt;cld-transformation effect=\\&quot;blur_faces:500\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;concert_crowd\\&quot; &gt;\\n\\t&lt;cld-transformation effect=\\&quot;blur_faces:500\\&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;concert_crowd\\&quot;).effect(\\n  blur()\\n    .strength(500)\\n    .region(faces())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;concert_crowd\\&quot;).effect(\\n  blur()\\n    .strength(500)\\n    .region(faces())\\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;concert_crowd\\&quot; &gt; &lt;cl-transformation effect=\\&quot;blur_faces:500\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;concert_crowd\\&quot; &gt;\\n\\t&lt;cl-transformation effect=\\&quot;blur_faces:500\\&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;concert_crowd\\&quot;).effect(\\n  blur()\\n    .strength(500)\\n    .region(faces())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;concert_crowd\\&quot;).effect(\\n  blur()\\n    .strength(500)\\n    .region(faces())\\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;concert_crowd&#039;, {effect: \\&quot;blur_faces:500\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;concert_crowd&#039;, {effect: \\&quot;blur_faces:500\\&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;concert_crowd\\&quot;).image(effect=\\&quot;blur_faces:500\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;concert_crowd\\&quot;).image(effect=\\&quot;blur_faces:500\\&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;concert_crowd&#039;))\\n\\t-&gt;effect(Effect::blur()-&gt;strength(500)\\n\\t-&gt;region(\\n\\tRegion::faces())\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;concert_crowd&#039;))\\n\\t-&gt;effect(Effect::blur()-&gt;strength(500)\\n\\t-&gt;region(\\n\\tRegion::faces())\\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;concert_crowd\\&quot;, array(\\&quot;effect\\&quot;=&gt;\\&quot;blur_faces:500\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;concert_crowd\\&quot;, array(\\&quot;effect\\&quot;=&gt;\\&quot;blur_faces:500\\&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().effect(\\&quot;blur_faces:500\\&quot;)).imageTag(\\&quot;concert_crowd\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().effect(\\&quot;blur_faces:500\\&quot;)).imageTag(\\&quot;concert_crowd\\&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;concert_crowd\\&quot;, effect: \\&quot;blur_faces:500\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;concert_crowd\\&quot;, effect: \\&quot;blur_faces:500\\&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().Effect(\\&quot;blur_faces:500\\&quot;)).BuildImageTag(\\&quot;concert_crowd\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Effect(\\&quot;blur_faces:500\\&quot;)).BuildImageTag(\\&quot;concert_crowd\\&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;concert_crowd&#039;).transformation(Transformation()\\n\\t.effect(Effect.blur().strength(500)\\n\\t.region(\\n\\tRegion.faces())\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;concert_crowd&#039;).transformation(Transformation()\\n\\t.effect(Effect.blur().strength(500)\\n\\t.region(\\n\\tRegion.faces())\\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().setEffect(\\&quot;blur_faces:500\\&quot;)).generate(\\&quot;concert_crowd\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setEffect(\\&quot;blur_faces:500\\&quot;)).generate(\\&quot;concert_crowd\\&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().effect(\\&quot;blur_faces:500\\&quot;)).generate(\\&quot;concert_crowd\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().effect(\\&quot;blur_faces:500\\&quot;)).generate(\\&quot;concert_crowd\\&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;concert_crowd&#039;).transformation(Transformation()\\n\\t.effect(Effect.blur().strength(500)\\n\\t.region(\\n\\tRegion.faces())\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;concert_crowd&#039;).transformation(Transformation()\\n\\t.effect(Effect.blur().strength(500)\\n\\t.region(\\n\\tRegion.faces())\\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;concert_crowd\\&quot;)\\n\\t effect(Effect.blur() { strength(500)\\n\\t region(\\n\\tRegion.faces())\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;concert_crowd\\&quot;)\\n\\t effect(Effect.blur() { strength(500)\\n\\t region(\\n\\tRegion.faces())\\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;concert_crowd\\&quot;, {effect: \\&quot;blur_faces:500\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;concert_crowd\\&quot;, {effect: \\&quot;blur_faces:500\\&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;concert_crowd\\&quot;).effect(\\n  blur()\\n    .strength(500)\\n    .region(faces())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;concert_crowd\\&quot;).effect(\\n  blur()\\n    .strength(500)\\n    .region(faces())\\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\\\/e_blur_faces:500\\\/concert_crowd&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;effect&quot;:&quot;blur_faces:500&quot;}],&quot;transformation_string&quot;:&quot;e_blur_faces:500&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;concert_crowd&quot;,&quot;extension&quot;:&quot;&quot;,&quot;format&quot;:&quot;&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\/e_blur_faces:500\/concert_crowd\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/e_blur_faces:500\/w_500\/concert_crowd\" alt=\"blurred faces\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"500\" height=\"333\"\/><\/a><\/p>\n<p>And here\u2019s an example of an ice skating scene where a couple of childrens\u2019 faces are clearly visible. This time, we use the pixelate option to protect the kids\u2019 identities:<\/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;ice_skating.jpg\\&quot;, {effect: \\&quot;pixelate_faces:4\\&quot;, width: 500, crop: \\&quot;scale\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;ice_skating.jpg\\&quot;, {effect: \\&quot;pixelate_faces:4\\&quot;, width: 500, 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;ice_skating.jpg\\&quot;)\\n  .effect(\\n    pixelate()\\n      .squareSize(4)\\n      .region(faces().width(500))\\n  )\\n  .resize(scale());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;ice_skating.jpg\\&quot;)\\n  .effect(\\n    pixelate()\\n      .squareSize(4)\\n      .region(faces().width(500))\\n  )\\n  .resize(scale());&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;ice_skating.jpg\\&quot; &gt; &lt;Transformation effect=\\&quot;pixelate_faces:4\\&quot; width=\\&quot;500\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;ice_skating.jpg\\&quot; &gt;\\n\\t&lt;Transformation effect=\\&quot;pixelate_faces:4\\&quot; width=\\&quot;500\\&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;ice_skating.jpg\\&quot;)\\n  .effect(\\n    pixelate()\\n      .squareSize(4)\\n      .region(faces().width(500))\\n  )\\n  .resize(scale());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;ice_skating.jpg\\&quot;)\\n  .effect(\\n    pixelate()\\n      .squareSize(4)\\n      .region(faces().width(500))\\n  )\\n  .resize(scale());&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;ice_skating.jpg\\&quot; &gt; &lt;cld-transformation effect=\\&quot;pixelate_faces:4\\&quot; width=\\&quot;500\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;ice_skating.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation effect=\\&quot;pixelate_faces:4\\&quot; width=\\&quot;500\\&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;ice_skating.jpg\\&quot;)\\n  .effect(\\n    pixelate()\\n      .squareSize(4)\\n      .region(faces().width(500))\\n  )\\n  .resize(scale());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;ice_skating.jpg\\&quot;)\\n  .effect(\\n    pixelate()\\n      .squareSize(4)\\n      .region(faces().width(500))\\n  )\\n  .resize(scale());&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;ice_skating.jpg\\&quot; &gt; &lt;cl-transformation effect=\\&quot;pixelate_faces:4\\&quot; width=\\&quot;500\\&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;ice_skating.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation effect=\\&quot;pixelate_faces:4\\&quot; width=\\&quot;500\\&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;ice_skating.jpg\\&quot;)\\n  .effect(\\n    pixelate()\\n      .squareSize(4)\\n      .region(faces().width(500))\\n  )\\n  .resize(scale());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;ice_skating.jpg\\&quot;)\\n  .effect(\\n    pixelate()\\n      .squareSize(4)\\n      .region(faces().width(500))\\n  )\\n  .resize(scale());&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;ice_skating.jpg&#039;, {effect: \\&quot;pixelate_faces:4\\&quot;, width: 500, crop: \\&quot;scale\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;ice_skating.jpg&#039;, {effect: \\&quot;pixelate_faces:4\\&quot;, width: 500, 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;ice_skating.jpg\\&quot;).image(effect=\\&quot;pixelate_faces:4\\&quot;, width=500, crop=\\&quot;scale\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;ice_skating.jpg\\&quot;).image(effect=\\&quot;pixelate_faces:4\\&quot;, width=500, 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;ice_skating.jpg&#039;))\\n\\t-&gt;effect(Effect::pixelate()-&gt;squareSize(4)\\n\\t-&gt;region(\\n\\tRegion::faces()-&gt;width(500))\\n\\t)\\n\\t-&gt;resize(Resize::scale());&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;ice_skating.jpg&#039;))\\n\\t-&gt;effect(Effect::pixelate()-&gt;squareSize(4)\\n\\t-&gt;region(\\n\\tRegion::faces()-&gt;width(500))\\n\\t)\\n\\t-&gt;resize(Resize::scale());&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;ice_skating.jpg\\&quot;, array(\\&quot;effect\\&quot;=&gt;\\&quot;pixelate_faces:4\\&quot;, \\&quot;width\\&quot;=&gt;500, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;ice_skating.jpg\\&quot;, array(\\&quot;effect\\&quot;=&gt;\\&quot;pixelate_faces:4\\&quot;, \\&quot;width\\&quot;=&gt;500, \\&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().effect(\\&quot;pixelate_faces:4\\&quot;).width(500).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;ice_skating.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().effect(\\&quot;pixelate_faces:4\\&quot;).width(500).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;ice_skating.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;ice_skating.jpg\\&quot;, effect: \\&quot;pixelate_faces:4\\&quot;, width: 500, crop: \\&quot;scale\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;ice_skating.jpg\\&quot;, effect: \\&quot;pixelate_faces:4\\&quot;, width: 500, 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().Effect(\\&quot;pixelate_faces:4\\&quot;).Width(500).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;ice_skating.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Effect(\\&quot;pixelate_faces:4\\&quot;).Width(500).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;ice_skating.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;ice_skating.jpg&#039;).transformation(Transformation()\\n\\t.effect(Effect.pixelate().squareSize(4)\\n\\t.region(\\n\\tRegion.faces().width(500))\\n\\t)\\n\\t.resize(Resize.scale()));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;ice_skating.jpg&#039;).transformation(Transformation()\\n\\t.effect(Effect.pixelate().squareSize(4)\\n\\t.region(\\n\\tRegion.faces().width(500))\\n\\t)\\n\\t.resize(Resize.scale()));&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().setEffect(\\&quot;pixelate_faces:4\\&quot;).setWidth(500).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;ice_skating.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setEffect(\\&quot;pixelate_faces:4\\&quot;).setWidth(500).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;ice_skating.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().effect(\\&quot;pixelate_faces:4\\&quot;).width(500).crop(\\&quot;scale\\&quot;)).generate(\\&quot;ice_skating.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().effect(\\&quot;pixelate_faces:4\\&quot;).width(500).crop(\\&quot;scale\\&quot;)).generate(\\&quot;ice_skating.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;ice_skating.jpg&#039;).transformation(Transformation()\\n\\t.effect(Effect.pixelate().squareSize(4)\\n\\t.region(\\n\\tRegion.faces().width(500))\\n\\t)\\n\\t.resize(Resize.scale()));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;ice_skating.jpg&#039;).transformation(Transformation()\\n\\t.effect(Effect.pixelate().squareSize(4)\\n\\t.region(\\n\\tRegion.faces().width(500))\\n\\t)\\n\\t.resize(Resize.scale()));&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;ice_skating.jpg\\&quot;)\\n\\t effect(Effect.pixelate() { squareSize(4)\\n\\t region(\\n\\tRegion.faces() { width(500) })\\n\\t })\\n\\t resize(Resize.scale()) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;ice_skating.jpg\\&quot;)\\n\\t effect(Effect.pixelate() { squareSize(4)\\n\\t region(\\n\\tRegion.faces() { width(500) })\\n\\t })\\n\\t resize(Resize.scale()) \\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;ice_skating.jpg\\&quot;, {effect: \\&quot;pixelate_faces:4\\&quot;, width: 500, crop: \\&quot;scale\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;ice_skating.jpg\\&quot;, {effect: \\&quot;pixelate_faces:4\\&quot;, width: 500, 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;ice_skating.jpg\\&quot;)\\n  .effect(\\n    pixelate()\\n      .squareSize(4)\\n      .region(faces().width(500))\\n  )\\n  .resize(scale());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;ice_skating.jpg\\&quot;)\\n  .effect(\\n    pixelate()\\n      .squareSize(4)\\n      .region(faces().width(500))\\n  )\\n  .resize(scale());&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,e_pixelate_faces:4,w_500\\\/ice_skating.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;effect&quot;:&quot;pixelate_faces:4&quot;,&quot;width&quot;:&quot;500&quot;}],&quot;transformation_string&quot;:&quot;c_scale,e_pixelate_faces:4,w_500&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;ice_skating.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,e_pixelate_faces:4,w_500\/ice_skating.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_scale,e_pixelate_faces:4,w_500\/ice_skating.jpg\" alt=\"pixelated faces\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"500\" height=\"334\"\/><\/a><\/p>\n<p><strong>Tip<\/strong>: For cases like these, you may want to take advantage of one of the <a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations#control_access_to_images\">access control options<\/a> to prevent users from accessing the non-blurred or non-pixelated versions of the image.<\/p>\n<h2>Saving face<\/h2>\n<p>There\u2019s no such thing as a face detection technology that will detect 100% of the faces 100% of the time, so what if you notice that a particular face you need was not detected? No problem. You can always update the detected coordinates explicitly.<\/p>\n<p>For example, when a user uploads an image to your site, you can retrieve and display the detected face coordinates and then enable your users to adjust the coordinates or add a new face via your UI. You can then pass the updated coordinates to Cloudinary via the <a href=\"https:\/\/cloudinary.com\/documentation\/admin_api#update_resources\">Update<\/a> method of the Admin API.<\/p>\n<p>For your own images, you can also manually change the coordinates using the Media library UI.<\/p>\n<h2>In your face<\/h2>\n<p>Sometimes, just blurring or pixelating a face isn\u2019t enough. Instead, you want to completely cover the face with another image. Or, maybe you just want to add a fun mask. Whatever the reason, it\u2019s simple to add the same image to all faces in a photo.<\/p>\n<p>To do this, you take advantage of the <code>region_relative<\/code> flag and <code>faces<\/code> gravity when you specify the overlay image. That tells Cloudinary that you want the overlay to be placed on all faces, and that the specified size of each overlay is a percentage relative to the size of each detected face.<\/p>\n<p>For example, here\u2019s a quick way to get your family dressed up in costume:\n<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;family_portrait.jpg\\&quot;, {gravity: \\&quot;faces\\&quot;, overlay: \\&quot;spiderman_mask\\&quot;, width: \\&quot;1.1\\&quot;, flags: \\&quot;region_relative\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;family_portrait.jpg\\&quot;, {gravity: \\&quot;faces\\&quot;, overlay: \\&quot;spiderman_mask\\&quot;, width: \\&quot;1.1\\&quot;, flags: \\&quot;region_relative\\&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;family_portrait.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;spiderman_mask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.1).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(faces())))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;family_portrait.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;spiderman_mask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.1).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(faces())))\\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;family_portrait.jpg\\&quot; &gt; &lt;Transformation gravity=\\&quot;faces\\&quot; overlay=\\&quot;spiderman_mask\\&quot; width=\\&quot;1.1\\&quot; flags=\\&quot;region_relative\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;family_portrait.jpg\\&quot; &gt;\\n\\t&lt;Transformation gravity=\\&quot;faces\\&quot; overlay=\\&quot;spiderman_mask\\&quot; width=\\&quot;1.1\\&quot; flags=\\&quot;region_relative\\&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;family_portrait.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;spiderman_mask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.1).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(faces())))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;family_portrait.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;spiderman_mask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.1).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(faces())))\\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;family_portrait.jpg\\&quot; &gt; &lt;cld-transformation gravity=\\&quot;faces\\&quot; :overlay=\\&quot;spiderman_mask\\&quot; width=\\&quot;1.1\\&quot; flags=\\&quot;region_relative\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;family_portrait.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation gravity=\\&quot;faces\\&quot; :overlay=\\&quot;spiderman_mask\\&quot; width=\\&quot;1.1\\&quot; flags=\\&quot;region_relative\\&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;family_portrait.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;spiderman_mask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.1).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(faces())))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;family_portrait.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;spiderman_mask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.1).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(faces())))\\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;family_portrait.jpg\\&quot; &gt; &lt;cl-transformation gravity=\\&quot;faces\\&quot; overlay=\\&quot;spiderman_mask\\&quot; width=\\&quot;1.1\\&quot; flags=\\&quot;region_relative\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;family_portrait.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation gravity=\\&quot;faces\\&quot; overlay=\\&quot;spiderman_mask\\&quot; width=\\&quot;1.1\\&quot; flags=\\&quot;region_relative\\&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;family_portrait.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;spiderman_mask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.1).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(faces())))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;family_portrait.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;spiderman_mask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.1).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(faces())))\\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;family_portrait.jpg&#039;, {gravity: \\&quot;faces\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;spiderman_mask\\&quot;), width: \\&quot;1.1\\&quot;, flags: \\&quot;region_relative\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;family_portrait.jpg&#039;, {gravity: \\&quot;faces\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;spiderman_mask\\&quot;), width: \\&quot;1.1\\&quot;, flags: \\&quot;region_relative\\&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;family_portrait.jpg\\&quot;).image(gravity=\\&quot;faces\\&quot;, overlay=\\&quot;spiderman_mask\\&quot;, width=\\&quot;1.1\\&quot;, flags=\\&quot;region_relative\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;family_portrait.jpg\\&quot;).image(gravity=\\&quot;faces\\&quot;, overlay=\\&quot;spiderman_mask\\&quot;, width=\\&quot;1.1\\&quot;, flags=\\&quot;region_relative\\&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;family_portrait.jpg&#039;))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;spiderman_mask\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(1.1)\\n\\t-&gt;regionRelative()\\n\\t))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::faces()))\\n\\t)\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;family_portrait.jpg&#039;))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;spiderman_mask\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(1.1)\\n\\t-&gt;regionRelative()\\n\\t))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::faces()))\\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;family_portrait.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;faces\\&quot;, \\&quot;overlay\\&quot;=&gt;\\&quot;spiderman_mask\\&quot;, \\&quot;width\\&quot;=&gt;\\&quot;1.1\\&quot;, \\&quot;flags\\&quot;=&gt;\\&quot;region_relative\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;family_portrait.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;faces\\&quot;, \\&quot;overlay\\&quot;=&gt;\\&quot;spiderman_mask\\&quot;, \\&quot;width\\&quot;=&gt;\\&quot;1.1\\&quot;, \\&quot;flags\\&quot;=&gt;\\&quot;region_relative\\&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;faces\\&quot;).overlay(new Layer().publicId(\\&quot;spiderman_mask\\&quot;)).width(1.1).flags(\\&quot;region_relative\\&quot;)).imageTag(\\&quot;family_portrait.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().gravity(\\&quot;faces\\&quot;).overlay(new Layer().publicId(\\&quot;spiderman_mask\\&quot;)).width(1.1).flags(\\&quot;region_relative\\&quot;)).imageTag(\\&quot;family_portrait.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;family_portrait.jpg\\&quot;, gravity: \\&quot;faces\\&quot;, overlay: \\&quot;spiderman_mask\\&quot;, width: 1.1, flags: \\&quot;region_relative\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;family_portrait.jpg\\&quot;, gravity: \\&quot;faces\\&quot;, overlay: \\&quot;spiderman_mask\\&quot;, width: 1.1, flags: \\&quot;region_relative\\&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;faces\\&quot;).Overlay(new Layer().PublicId(\\&quot;spiderman_mask\\&quot;)).Width(1.1).Flags(\\&quot;region_relative\\&quot;)).BuildImageTag(\\&quot;family_portrait.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Gravity(\\&quot;faces\\&quot;).Overlay(new Layer().PublicId(\\&quot;spiderman_mask\\&quot;)).Width(1.1).Flags(\\&quot;region_relative\\&quot;)).BuildImageTag(\\&quot;family_portrait.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;family_portrait.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;spiderman_mask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.1)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.faces()))\\n\\t)\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;family_portrait.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;spiderman_mask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.1)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.faces()))\\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().setGravity(\\&quot;faces\\&quot;).setOverlay(\\&quot;spiderman_mask\\&quot;).setWidth(1.1).setFlags(\\&quot;region_relative\\&quot;)).generate(\\&quot;family_portrait.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setGravity(\\&quot;faces\\&quot;).setOverlay(\\&quot;spiderman_mask\\&quot;).setWidth(1.1).setFlags(\\&quot;region_relative\\&quot;)).generate(\\&quot;family_portrait.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;faces\\&quot;).overlay(new Layer().publicId(\\&quot;spiderman_mask\\&quot;)).width(1.1).flags(\\&quot;region_relative\\&quot;)).generate(\\&quot;family_portrait.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().gravity(\\&quot;faces\\&quot;).overlay(new Layer().publicId(\\&quot;spiderman_mask\\&quot;)).width(1.1).flags(\\&quot;region_relative\\&quot;)).generate(\\&quot;family_portrait.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;family_portrait.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;spiderman_mask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.1)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.faces()))\\n\\t)\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;family_portrait.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;spiderman_mask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.1)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.faces()))\\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;family_portrait.jpg\\&quot;)\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;spiderman_mask\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(1.1F)\\n\\t regionRelative()\\n\\t }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.faces()))\\n\\t })\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;family_portrait.jpg\\&quot;)\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;spiderman_mask\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(1.1F)\\n\\t regionRelative()\\n\\t }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.faces()))\\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;family_portrait.jpg\\&quot;, {gravity: \\&quot;faces\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;spiderman_mask\\&quot;), width: \\&quot;1.1\\&quot;, flags: \\&quot;region_relative\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;family_portrait.jpg\\&quot;, {gravity: \\&quot;faces\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;spiderman_mask\\&quot;), width: \\&quot;1.1\\&quot;, flags: \\&quot;region_relative\\&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;family_portrait.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;spiderman_mask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.1).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(faces())))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;family_portrait.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;spiderman_mask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.1).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(faces())))\\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\\\/g_faces,l_spiderman_mask,w_1.1,fl_region_relative,g_faces\\\/family_portrait.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;gravity&quot;:&quot;faces&quot;,&quot;overlay&quot;:&quot;spiderman_mask&quot;,&quot;width&quot;:&quot;1.1&quot;,&quot;flags&quot;:&quot;region_relative&quot;}],&quot;transformation_string&quot;:&quot;g_faces,l_spiderman_mask,w_1.1,fl_region_relative,g_faces&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;family_portrait.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><\/p>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<div style=\"text-align:center;\">\n<span style=\"display:inline-block;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/family_portrait\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_300\/family_portrait\" alt=\"Original photo\" title=\"Original photo\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<p><\/span><span style=\"display:inline-block;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/g_faces,l_spiderman_mask,w_1.1,fl_region_relative,g_faces\/family_portrait\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/g_faces,l_spiderman_mask,w_1.1,fl_region_relative,g_faces\/w_300\/family_portrait\" alt=\"spiderman mask overlay on faces\" title=\"spiderman mask overlay on faces\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<\/span><\/p>\n<\/div>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<p>You probably already noticed that we gave anonymous (happy) faces to our roller coaster riders at the beginning of this article using the same technique.<\/p>\n<p>And remember, the overlay you use doesn\u2019t have to cover the whole face or even be centered. Below, we add a ranger hat to a man\u2019s head using a relative y- coordinate to offset the location of the hat about 30% above the center of the face.<\/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;smiling_man\\&quot;, {transformation: [ {gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.6\\&quot;, crop: \\&quot;crop\\&quot;}, {overlay: \\&quot;ranger_hat\\&quot;, width: \\&quot;1.1\\&quot;, flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;face\\&quot;, y: \\&quot;-0.3\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;smiling_man\\&quot;, {transformation: [\\n  {gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.6\\&quot;, crop: \\&quot;crop\\&quot;},\\n  {overlay: \\&quot;ranger_hat\\&quot;, width: \\&quot;1.1\\&quot;, flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;face\\&quot;, y: \\&quot;-0.3\\&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;smiling_man\\&quot;)\\n  .resize(\\n    crop()\\n      .zoom(0.6)\\n      .gravity(focusOn(face()))\\n  )\\n  .overlay(\\n    source(\\n      image(\\&quot;ranger_hat\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.1).regionRelative())\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(focusOn(face()))\\n        .offsetY(-0.3)\\n    )\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;smiling_man\\&quot;)\\n  .resize(\\n    crop()\\n      .zoom(0.6)\\n      .gravity(focusOn(face()))\\n  )\\n  .overlay(\\n    source(\\n      image(\\&quot;ranger_hat\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.1).regionRelative())\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(focusOn(face()))\\n        .offsetY(-0.3)\\n    )\\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;smiling_man\\&quot; &gt; &lt;Transformation gravity=\\&quot;face\\&quot; zoom=\\&quot;0.6\\&quot; crop=\\&quot;crop\\&quot; \\\/&gt; &lt;Transformation overlay=\\&quot;ranger_hat\\&quot; width=\\&quot;1.1\\&quot; flags=\\&quot;region_relative\\&quot; gravity=\\&quot;face\\&quot; y=\\&quot;-0.3\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;smiling_man\\&quot; &gt;\\n\\t&lt;Transformation gravity=\\&quot;face\\&quot; zoom=\\&quot;0.6\\&quot; crop=\\&quot;crop\\&quot; \\\/&gt;\\n\\t&lt;Transformation overlay=\\&quot;ranger_hat\\&quot; width=\\&quot;1.1\\&quot; flags=\\&quot;region_relative\\&quot; gravity=\\&quot;face\\&quot; y=\\&quot;-0.3\\&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;smiling_man\\&quot;)\\n  .resize(\\n    crop()\\n      .zoom(0.6)\\n      .gravity(focusOn(face()))\\n  )\\n  .overlay(\\n    source(\\n      image(\\&quot;ranger_hat\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.1).regionRelative())\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(focusOn(face()))\\n        .offsetY(-0.3)\\n    )\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;smiling_man\\&quot;)\\n  .resize(\\n    crop()\\n      .zoom(0.6)\\n      .gravity(focusOn(face()))\\n  )\\n  .overlay(\\n    source(\\n      image(\\&quot;ranger_hat\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.1).regionRelative())\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(focusOn(face()))\\n        .offsetY(-0.3)\\n    )\\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;smiling_man\\&quot; &gt; &lt;cld-transformation gravity=\\&quot;face\\&quot; zoom=\\&quot;0.6\\&quot; crop=\\&quot;crop\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;ranger_hat\\&quot; width=\\&quot;1.1\\&quot; flags=\\&quot;region_relative\\&quot; gravity=\\&quot;face\\&quot; y=\\&quot;-0.3\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;smiling_man\\&quot; &gt;\\n\\t&lt;cld-transformation gravity=\\&quot;face\\&quot; zoom=\\&quot;0.6\\&quot; crop=\\&quot;crop\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;ranger_hat\\&quot; width=\\&quot;1.1\\&quot; flags=\\&quot;region_relative\\&quot; gravity=\\&quot;face\\&quot; y=\\&quot;-0.3\\&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;smiling_man\\&quot;)\\n  .resize(\\n    crop()\\n      .zoom(0.6)\\n      .gravity(focusOn(face()))\\n  )\\n  .overlay(\\n    source(\\n      image(\\&quot;ranger_hat\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.1).regionRelative())\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(focusOn(face()))\\n        .offsetY(-0.3)\\n    )\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;smiling_man\\&quot;)\\n  .resize(\\n    crop()\\n      .zoom(0.6)\\n      .gravity(focusOn(face()))\\n  )\\n  .overlay(\\n    source(\\n      image(\\&quot;ranger_hat\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.1).regionRelative())\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(focusOn(face()))\\n        .offsetY(-0.3)\\n    )\\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;smiling_man\\&quot; &gt; &lt;cl-transformation gravity=\\&quot;face\\&quot; zoom=\\&quot;0.6\\&quot; crop=\\&quot;crop\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;ranger_hat\\&quot; width=\\&quot;1.1\\&quot; flags=\\&quot;region_relative\\&quot; gravity=\\&quot;face\\&quot; y=\\&quot;-0.3\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;smiling_man\\&quot; &gt;\\n\\t&lt;cl-transformation gravity=\\&quot;face\\&quot; zoom=\\&quot;0.6\\&quot; crop=\\&quot;crop\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;ranger_hat\\&quot; width=\\&quot;1.1\\&quot; flags=\\&quot;region_relative\\&quot; gravity=\\&quot;face\\&quot; y=\\&quot;-0.3\\&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;smiling_man\\&quot;)\\n  .resize(\\n    crop()\\n      .zoom(0.6)\\n      .gravity(focusOn(face()))\\n  )\\n  .overlay(\\n    source(\\n      image(\\&quot;ranger_hat\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.1).regionRelative())\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(focusOn(face()))\\n        .offsetY(-0.3)\\n    )\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;smiling_man\\&quot;)\\n  .resize(\\n    crop()\\n      .zoom(0.6)\\n      .gravity(focusOn(face()))\\n  )\\n  .overlay(\\n    source(\\n      image(\\&quot;ranger_hat\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.1).regionRelative())\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(focusOn(face()))\\n        .offsetY(-0.3)\\n    )\\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;smiling_man&#039;, {transformation: [ {gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.6\\&quot;, crop: \\&quot;crop\\&quot;}, {overlay: new cloudinary.Layer().publicId(\\&quot;ranger_hat\\&quot;), width: \\&quot;1.1\\&quot;, flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;face\\&quot;, y: \\&quot;-0.3\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;smiling_man&#039;, {transformation: [\\n  {gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.6\\&quot;, crop: \\&quot;crop\\&quot;},\\n  {overlay: new cloudinary.Layer().publicId(\\&quot;ranger_hat\\&quot;), width: \\&quot;1.1\\&quot;, flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;face\\&quot;, y: \\&quot;-0.3\\&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;smiling_man\\&quot;).image(transformation=[ {&#039;gravity&#039;: \\&quot;face\\&quot;, &#039;zoom&#039;: \\&quot;0.6\\&quot;, &#039;crop&#039;: \\&quot;crop\\&quot;}, {&#039;overlay&#039;: \\&quot;ranger_hat\\&quot;, &#039;width&#039;: \\&quot;1.1\\&quot;, &#039;flags&#039;: \\&quot;region_relative\\&quot;, &#039;gravity&#039;: \\&quot;face\\&quot;, &#039;y&#039;: \\&quot;-0.3\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;smiling_man\\&quot;).image(transformation=[\\n  {&#039;gravity&#039;: \\&quot;face\\&quot;, &#039;zoom&#039;: \\&quot;0.6\\&quot;, &#039;crop&#039;: \\&quot;crop\\&quot;},\\n  {&#039;overlay&#039;: \\&quot;ranger_hat\\&quot;, &#039;width&#039;: \\&quot;1.1\\&quot;, &#039;flags&#039;: \\&quot;region_relative\\&quot;, &#039;gravity&#039;: \\&quot;face\\&quot;, &#039;y&#039;: \\&quot;-0.3\\&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;smiling_man&#039;))\\n\\t-&gt;resize(Resize::crop()-&gt;zoom(0.6)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;ranger_hat\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(1.1)\\n\\t-&gt;regionRelative()\\n\\t))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n-&gt;offsetY(-0.3))\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;smiling_man&#039;))\\n\\t-&gt;resize(Resize::crop()-&gt;zoom(0.6)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;ranger_hat\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(1.1)\\n\\t-&gt;regionRelative()\\n\\t))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n-&gt;offsetY(-0.3))\\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;smiling_man\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;zoom\\&quot;=&gt;\\&quot;0.6\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;crop\\&quot;), array(\\&quot;overlay\\&quot;=&gt;\\&quot;ranger_hat\\&quot;, \\&quot;width\\&quot;=&gt;\\&quot;1.1\\&quot;, \\&quot;flags\\&quot;=&gt;\\&quot;region_relative\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;y\\&quot;=&gt;\\&quot;-0.3\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;smiling_man\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;zoom\\&quot;=&gt;\\&quot;0.6\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;crop\\&quot;),\\n  array(\\&quot;overlay\\&quot;=&gt;\\&quot;ranger_hat\\&quot;, \\&quot;width\\&quot;=&gt;\\&quot;1.1\\&quot;, \\&quot;flags\\&quot;=&gt;\\&quot;region_relative\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;y\\&quot;=&gt;\\&quot;-0.3\\&quot;)\\n  )))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().gravity(\\&quot;face\\&quot;).zoom(0.6).crop(\\&quot;crop\\&quot;).chain() .overlay(new Layer().publicId(\\&quot;ranger_hat\\&quot;)).width(1.1).flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;face\\&quot;).y(-0.3)).imageTag(\\&quot;smiling_man\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .gravity(\\&quot;face\\&quot;).zoom(0.6).crop(\\&quot;crop\\&quot;).chain()\\n  .overlay(new Layer().publicId(\\&quot;ranger_hat\\&quot;)).width(1.1).flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;face\\&quot;).y(-0.3)).imageTag(\\&quot;smiling_man\\&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;smiling_man\\&quot;, transformation: [ {gravity: \\&quot;face\\&quot;, zoom: 0.6, crop: \\&quot;crop\\&quot;}, {overlay: \\&quot;ranger_hat\\&quot;, width: 1.1, flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;face\\&quot;, y: -0.3} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;smiling_man\\&quot;, transformation: [\\n  {gravity: \\&quot;face\\&quot;, zoom: 0.6, crop: \\&quot;crop\\&quot;},\\n  {overlay: \\&quot;ranger_hat\\&quot;, width: 1.1, flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;face\\&quot;, y: -0.3}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Gravity(\\&quot;face\\&quot;).Zoom(0.6).Crop(\\&quot;crop\\&quot;).Chain() .Overlay(new Layer().PublicId(\\&quot;ranger_hat\\&quot;)).Width(1.1).Flags(\\&quot;region_relative\\&quot;).Gravity(\\&quot;face\\&quot;).Y(-0.3)).BuildImageTag(\\&quot;smiling_man\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Gravity(\\&quot;face\\&quot;).Zoom(0.6).Crop(\\&quot;crop\\&quot;).Chain()\\n  .Overlay(new Layer().PublicId(\\&quot;ranger_hat\\&quot;)).Width(1.1).Flags(\\&quot;region_relative\\&quot;).Gravity(\\&quot;face\\&quot;).Y(-0.3)).BuildImageTag(\\&quot;smiling_man\\&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;smiling_man&#039;).transformation(Transformation()\\n\\t.resize(Resize.crop().zoom(0.6)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;ranger_hat\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.1)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n.offsetY(-0.3))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;smiling_man&#039;).transformation(Transformation()\\n\\t.resize(Resize.crop().zoom(0.6)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;ranger_hat\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.1)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n.offsetY(-0.3))\\n\\t));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setGravity(\\&quot;face\\&quot;).setZoom(0.6).setCrop(\\&quot;crop\\&quot;).chain() .setOverlay(\\&quot;ranger_hat\\&quot;).setWidth(1.1).setFlags(\\&quot;region_relative\\&quot;).setGravity(\\&quot;face\\&quot;).setY(-0.3)).generate(\\&quot;smiling_man\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setGravity(\\&quot;face\\&quot;).setZoom(0.6).setCrop(\\&quot;crop\\&quot;).chain()\\n  .setOverlay(\\&quot;ranger_hat\\&quot;).setWidth(1.1).setFlags(\\&quot;region_relative\\&quot;).setGravity(\\&quot;face\\&quot;).setY(-0.3)).generate(\\&quot;smiling_man\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().gravity(\\&quot;face\\&quot;).zoom(0.6).crop(\\&quot;crop\\&quot;).chain() .overlay(new Layer().publicId(\\&quot;ranger_hat\\&quot;)).width(1.1).flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;face\\&quot;).y(-0.3)).generate(\\&quot;smiling_man\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .gravity(\\&quot;face\\&quot;).zoom(0.6).crop(\\&quot;crop\\&quot;).chain()\\n  .overlay(new Layer().publicId(\\&quot;ranger_hat\\&quot;)).width(1.1).flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;face\\&quot;).y(-0.3)).generate(\\&quot;smiling_man\\&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;smiling_man&#039;).transformation(Transformation()\\n\\t.resize(Resize.crop().zoom(0.6)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;ranger_hat\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.1)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n.offsetY(-0.3))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;smiling_man&#039;).transformation(Transformation()\\n\\t.resize(Resize.crop().zoom(0.6)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;ranger_hat\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.1)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n.offsetY(-0.3))\\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;smiling_man\\&quot;)\\n\\t resize(Resize.crop() { zoom(0.6F)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t })\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;ranger_hat\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(1.1F)\\n\\t regionRelative()\\n\\t }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n offsetY(-0.3F) })\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;smiling_man\\&quot;)\\n\\t resize(Resize.crop() { zoom(0.6F)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t })\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;ranger_hat\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(1.1F)\\n\\t regionRelative()\\n\\t }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n offsetY(-0.3F) })\\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;smiling_man\\&quot;, {transformation: [ {gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.6\\&quot;, crop: \\&quot;crop\\&quot;}, {overlay: new cloudinary.Layer().publicId(\\&quot;ranger_hat\\&quot;), width: \\&quot;1.1\\&quot;, flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;face\\&quot;, y: \\&quot;-0.3\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;smiling_man\\&quot;, {transformation: [\\n  {gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.6\\&quot;, crop: \\&quot;crop\\&quot;},\\n  {overlay: new cloudinary.Layer().publicId(\\&quot;ranger_hat\\&quot;), width: \\&quot;1.1\\&quot;, flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;face\\&quot;, y: \\&quot;-0.3\\&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;smiling_man\\&quot;)\\n  .resize(\\n    crop()\\n      .zoom(0.6)\\n      .gravity(focusOn(face()))\\n  )\\n  .overlay(\\n    source(\\n      image(\\&quot;ranger_hat\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.1).regionRelative())\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(focusOn(face()))\\n        .offsetY(-0.3)\\n    )\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;smiling_man\\&quot;)\\n  .resize(\\n    crop()\\n      .zoom(0.6)\\n      .gravity(focusOn(face()))\\n  )\\n  .overlay(\\n    source(\\n      image(\\&quot;ranger_hat\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.1).regionRelative())\\n      )\\n    ).position(\\n      new Position()\\n        .gravity(focusOn(face()))\\n        .offsetY(-0.3)\\n    )\\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_crop,g_face,z_0.6\\\/l_ranger_hat,w_1.1,fl_region_relative,g_face,y_-0.3\\\/smiling_man&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;crop&quot;,&quot;gravity&quot;:&quot;face&quot;,&quot;zoom&quot;:&quot;0.6&quot;},{&quot;overlay&quot;:&quot;ranger_hat&quot;,&quot;width&quot;:&quot;1.1&quot;,&quot;flags&quot;:&quot;region_relative&quot;,&quot;gravity&quot;:&quot;face&quot;,&quot;y&quot;:&quot;-0.3&quot;}],&quot;transformation_string&quot;:&quot;c_crop,g_face,z_0.6\\\/l_ranger_hat,w_1.1,fl_region_relative,g_face,y_-0.3&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;smiling_man&quot;,&quot;extension&quot;:&quot;&quot;,&quot;format&quot;:&quot;&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_crop,g_face,z_0.6\/l_ranger_hat,w_1.1,fl_region_relative,g_face,y_-0.3\/smiling_man\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_crop,g_face,z_0.6\/l_ranger_hat,w_1.1,fl_region_relative,g_face,y_-0.3\/w_300\/smiling_man\" alt=\"hat overlay\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"300\" height=\"359\"\/><\/a><\/p>\n<h2>At face value<\/h2>\n<p>If you want to check the face detection status of uploaded images programmatically, you can request to return face coordinate data when you or your users <a href=\"https:\/\/cloudinary.com\/documentation\/image_upload_api_reference#upload\">upload<\/a> images, or you can request them upon demand for already uploaded images using the <a href=\"https:\/\/cloudinary.com\/documentation\/image_upload_api_reference#explicit\">explicit<\/a> method of the upload API, or with the <a href=\"https:\/\/cloudinary.com\/documentation\/admin_api#details_of_a_single_resource\">list details of a single resource<\/a> functionality of the Admin API. The following shows an excerpt from the JSON response of an upload call where the <code>faces<\/code> parameter was set to true.<\/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\">\"faces\"<\/span>:  &#91; &#91;<span class=\"hljs-number\">513<\/span>, <span class=\"hljs-number\">19<\/span>, <span class=\"hljs-number\">38<\/span>, <span class=\"hljs-number\">52<\/span>], &#91;<span class=\"hljs-number\">409<\/span>, <span class=\"hljs-number\">26<\/span>, <span class=\"hljs-number\">40<\/span>, <span class=\"hljs-number\">54<\/span>], &#91;<span class=\"hljs-number\">79<\/span>, <span class=\"hljs-number\">31<\/span>, <span class=\"hljs-number\">43<\/span>, <span class=\"hljs-number\">59<\/span>], &#91;<span class=\"hljs-number\">232<\/span>, <span class=\"hljs-number\">32<\/span>, <span class=\"hljs-number\">40<\/span>, <span class=\"hljs-number\">54<\/span>], &#91;<span class=\"hljs-number\">321<\/span>, <span class=\"hljs-number\">33<\/span>, <span class=\"hljs-number\">41<\/span>, <span class=\"hljs-number\">57<\/span>], &#91;<span class=\"hljs-number\">160<\/span>, <span class=\"hljs-number\">37<\/span>, <span class=\"hljs-number\">43<\/span>, <span class=\"hljs-number\">59<\/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<p>For example, you could use this data to calculate the ideal location for a text overlay so that it won\u2019t cover any faces on a photo.<\/p>\n<h2>Two-faced<\/h2>\n<p>Cloudinary enables you to create programmatically complex transformations by adding conditions to your transformations. One of the things you can base your conditions on is <code>face_count<\/code>.<\/p>\n<p>For example, you can\u2019t always be sure that a profile picture will be of a person. Some people choose to upload family portraits, scenery, or other images to represent themselves. The following images use the identical conditional transformation, where thumbnail cropping is applied if one or more faces is found, but scaled cropping is used on images without faces. We\u2019ve also added a shadow vs black border for the alternative conditions to highlight the differences.<\/p>\n<p>(The code shown here is for the <code>nice_couple<\/code> on the left, but you can click the bridge picture to see that it uses the identical transformation URL except for the image name (public ID).)<\/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;nice_couple\\&quot;, {transformation: [ {if: \\&quot;fc_gte_1\\&quot;, gravity: \\&quot;faces\\&quot;, zoom: \\&quot;0.5\\&quot;, width: 200, height: 200, effect: \\&quot;shadow:10\\&quot;, color: \\&quot;#acb2b9\\&quot;, x: 7, y: 7, crop: \\&quot;thumb\\&quot;}, {if: \\&quot;else\\&quot;, width: 200, height: 200, border: \\&quot;3px_solid_black\\&quot;, crop: \\&quot;scale\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;nice_couple\\&quot;, {transformation: [\\n  {if: \\&quot;fc_gte_1\\&quot;, gravity: \\&quot;faces\\&quot;, zoom: \\&quot;0.5\\&quot;, width: 200, height: 200, effect: \\&quot;shadow:10\\&quot;, color: \\&quot;#acb2b9\\&quot;, x: 7, y: 7, crop: \\&quot;thumb\\&quot;},\\n  {if: \\&quot;else\\&quot;, width: 200, height: 200, border: \\&quot;3px_solid_black\\&quot;, crop: \\&quot;scale\\&quot;}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple\\&quot;).conditional(\\n  ifCondition(\\n    \\&quot;face_count &gt;= 1\\&quot;,\\n    new Transformation()\\n      .effect(shadow().strength(10).color(\\&quot;#acb2b9\\&quot;).offsetX(7).offsetY(7))\\n      .resize(\\n        thumbnail().width(200).height(200).zoom(0.5).gravity(focusOn(faces()))\\n      )\\n  ).otherwise(\\n    new Transformation()\\n      .resize(scale().width(200).height(200))\\n      .border(solid(3, \\&quot;black\\&quot;))\\n  )\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple\\&quot;).conditional(\\n  ifCondition(\\n    \\&quot;face_count &gt;= 1\\&quot;,\\n    new Transformation()\\n      .effect(shadow().strength(10).color(\\&quot;#acb2b9\\&quot;).offsetX(7).offsetY(7))\\n      .resize(\\n        thumbnail().width(200).height(200).zoom(0.5).gravity(focusOn(faces()))\\n      )\\n  ).otherwise(\\n    new Transformation()\\n      .resize(scale().width(200).height(200))\\n      .border(solid(3, \\&quot;black\\&quot;))\\n  )\\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;nice_couple\\&quot; &gt; &lt;Transformation if=\\&quot;fc_gte_1\\&quot; gravity=\\&quot;faces\\&quot; zoom=\\&quot;0.5\\&quot; width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; effect=\\&quot;shadow:10\\&quot; color=\\&quot;#acb2b9\\&quot; x=\\&quot;7\\&quot; y=\\&quot;7\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;Transformation if=\\&quot;else\\&quot; width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; border=\\&quot;3px_solid_black\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;nice_couple\\&quot; &gt;\\n\\t&lt;Transformation if=\\&quot;fc_gte_1\\&quot; gravity=\\&quot;faces\\&quot; zoom=\\&quot;0.5\\&quot; width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; effect=\\&quot;shadow:10\\&quot; color=\\&quot;#acb2b9\\&quot; x=\\&quot;7\\&quot; y=\\&quot;7\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n\\t&lt;Transformation if=\\&quot;else\\&quot; width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; border=\\&quot;3px_solid_black\\&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;nice_couple\\&quot;).conditional(\\n  ifCondition(\\n    \\&quot;face_count &gt;= 1\\&quot;,\\n    new Transformation()\\n      .effect(shadow().strength(10).color(\\&quot;#acb2b9\\&quot;).offsetX(7).offsetY(7))\\n      .resize(\\n        thumbnail().width(200).height(200).zoom(0.5).gravity(focusOn(faces()))\\n      )\\n  ).otherwise(\\n    new Transformation()\\n      .resize(scale().width(200).height(200))\\n      .border(solid(3, \\&quot;black\\&quot;))\\n  )\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple\\&quot;).conditional(\\n  ifCondition(\\n    \\&quot;face_count &gt;= 1\\&quot;,\\n    new Transformation()\\n      .effect(shadow().strength(10).color(\\&quot;#acb2b9\\&quot;).offsetX(7).offsetY(7))\\n      .resize(\\n        thumbnail().width(200).height(200).zoom(0.5).gravity(focusOn(faces()))\\n      )\\n  ).otherwise(\\n    new Transformation()\\n      .resize(scale().width(200).height(200))\\n      .border(solid(3, \\&quot;black\\&quot;))\\n  )\\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;nice_couple\\&quot; &gt; &lt;cld-transformation if=\\&quot;fc_gte_1\\&quot; gravity=\\&quot;faces\\&quot; zoom=\\&quot;0.5\\&quot; width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; effect=\\&quot;shadow:10\\&quot; color=\\&quot;#acb2b9\\&quot; x=\\&quot;7\\&quot; y=\\&quot;7\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;cld-transformation if=\\&quot;else\\&quot; width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; border=\\&quot;3px_solid_black\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;nice_couple\\&quot; &gt;\\n\\t&lt;cld-transformation if=\\&quot;fc_gte_1\\&quot; gravity=\\&quot;faces\\&quot; zoom=\\&quot;0.5\\&quot; width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; effect=\\&quot;shadow:10\\&quot; color=\\&quot;#acb2b9\\&quot; x=\\&quot;7\\&quot; y=\\&quot;7\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation if=\\&quot;else\\&quot; width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; border=\\&quot;3px_solid_black\\&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;nice_couple\\&quot;).conditional(\\n  ifCondition(\\n    \\&quot;face_count &gt;= 1\\&quot;,\\n    new Transformation()\\n      .effect(shadow().strength(10).color(\\&quot;#acb2b9\\&quot;).offsetX(7).offsetY(7))\\n      .resize(\\n        thumbnail().width(200).height(200).zoom(0.5).gravity(focusOn(faces()))\\n      )\\n  ).otherwise(\\n    new Transformation()\\n      .resize(scale().width(200).height(200))\\n      .border(solid(3, \\&quot;black\\&quot;))\\n  )\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple\\&quot;).conditional(\\n  ifCondition(\\n    \\&quot;face_count &gt;= 1\\&quot;,\\n    new Transformation()\\n      .effect(shadow().strength(10).color(\\&quot;#acb2b9\\&quot;).offsetX(7).offsetY(7))\\n      .resize(\\n        thumbnail().width(200).height(200).zoom(0.5).gravity(focusOn(faces()))\\n      )\\n  ).otherwise(\\n    new Transformation()\\n      .resize(scale().width(200).height(200))\\n      .border(solid(3, \\&quot;black\\&quot;))\\n  )\\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;nice_couple\\&quot; &gt; &lt;cl-transformation if=\\&quot;fc_gte_1\\&quot; gravity=\\&quot;faces\\&quot; zoom=\\&quot;0.5\\&quot; width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; effect=\\&quot;shadow:10\\&quot; color=\\&quot;#acb2b9\\&quot; x=\\&quot;7\\&quot; y=\\&quot;7\\&quot; crop=\\&quot;thumb\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation if=\\&quot;else\\&quot; width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; border=\\&quot;3px_solid_black\\&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;nice_couple\\&quot; &gt;\\n\\t&lt;cl-transformation if=\\&quot;fc_gte_1\\&quot; gravity=\\&quot;faces\\&quot; zoom=\\&quot;0.5\\&quot; width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; effect=\\&quot;shadow:10\\&quot; color=\\&quot;#acb2b9\\&quot; x=\\&quot;7\\&quot; y=\\&quot;7\\&quot; crop=\\&quot;thumb\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation if=\\&quot;else\\&quot; width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; border=\\&quot;3px_solid_black\\&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;nice_couple\\&quot;).conditional(\\n  ifCondition(\\n    \\&quot;face_count &gt;= 1\\&quot;,\\n    new Transformation()\\n      .effect(shadow().strength(10).color(\\&quot;#acb2b9\\&quot;).offsetX(7).offsetY(7))\\n      .resize(\\n        thumbnail().width(200).height(200).zoom(0.5).gravity(focusOn(faces()))\\n      )\\n  ).otherwise(\\n    new Transformation()\\n      .resize(scale().width(200).height(200))\\n      .border(solid(3, \\&quot;black\\&quot;))\\n  )\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple\\&quot;).conditional(\\n  ifCondition(\\n    \\&quot;face_count &gt;= 1\\&quot;,\\n    new Transformation()\\n      .effect(shadow().strength(10).color(\\&quot;#acb2b9\\&quot;).offsetX(7).offsetY(7))\\n      .resize(\\n        thumbnail().width(200).height(200).zoom(0.5).gravity(focusOn(faces()))\\n      )\\n  ).otherwise(\\n    new Transformation()\\n      .resize(scale().width(200).height(200))\\n      .border(solid(3, \\&quot;black\\&quot;))\\n  )\\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;nice_couple&#039;, {transformation: [ {if: \\&quot;fc_gte_1\\&quot;, gravity: \\&quot;faces\\&quot;, zoom: \\&quot;0.5\\&quot;, width: 200, height: 200, effect: \\&quot;shadow:10\\&quot;, color: \\&quot;#acb2b9\\&quot;, x: 7, y: 7, crop: \\&quot;thumb\\&quot;}, {if: \\&quot;else\\&quot;, width: 200, height: 200, border: \\&quot;3px_solid_black\\&quot;, crop: \\&quot;scale\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;nice_couple&#039;, {transformation: [\\n  {if: \\&quot;fc_gte_1\\&quot;, gravity: \\&quot;faces\\&quot;, zoom: \\&quot;0.5\\&quot;, width: 200, height: 200, effect: \\&quot;shadow:10\\&quot;, color: \\&quot;#acb2b9\\&quot;, x: 7, y: 7, crop: \\&quot;thumb\\&quot;},\\n  {if: \\&quot;else\\&quot;, width: 200, height: 200, border: \\&quot;3px_solid_black\\&quot;, crop: \\&quot;scale\\&quot;}\\n  ]}).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryImage(\\&quot;nice_couple\\&quot;).image(transformation=[ {&#039;if&#039;: \\&quot;fc_gte_1\\&quot;, &#039;gravity&#039;: \\&quot;faces\\&quot;, &#039;zoom&#039;: \\&quot;0.5\\&quot;, &#039;width&#039;: 200, &#039;height&#039;: 200, &#039;effect&#039;: \\&quot;shadow:10\\&quot;, &#039;color&#039;: \\&quot;#acb2b9\\&quot;, &#039;x&#039;: 7, &#039;y&#039;: 7, &#039;crop&#039;: \\&quot;thumb\\&quot;}, {&#039;if&#039;: \\&quot;else\\&quot;, &#039;width&#039;: 200, &#039;height&#039;: 200, &#039;border&#039;: \\&quot;3px_solid_black\\&quot;, &#039;crop&#039;: \\&quot;scale\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;nice_couple\\&quot;).image(transformation=[\\n  {&#039;if&#039;: \\&quot;fc_gte_1\\&quot;, &#039;gravity&#039;: \\&quot;faces\\&quot;, &#039;zoom&#039;: \\&quot;0.5\\&quot;, &#039;width&#039;: 200, &#039;height&#039;: 200, &#039;effect&#039;: \\&quot;shadow:10\\&quot;, &#039;color&#039;: \\&quot;#acb2b9\\&quot;, &#039;x&#039;: 7, &#039;y&#039;: 7, &#039;crop&#039;: \\&quot;thumb\\&quot;},\\n  {&#039;if&#039;: \\&quot;else\\&quot;, &#039;width&#039;: 200, &#039;height&#039;: 200, &#039;border&#039;: \\&quot;3px_solid_black\\&quot;, &#039;crop&#039;: \\&quot;scale\\&quot;}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new ImageTag(&#039;nice_couple&#039;))\\n\\t-&gt;conditional(Conditional::ifCondition(\\&quot;face_count &gt;= 1\\&quot;,(new Transformation())\\n\\t-&gt;effect(Effect::shadow()-&gt;strength(10)\\n\\t-&gt;color(Color::rgb(\\&quot;acb2b9\\&quot;))\\n-&gt;offsetX(7)\\n-&gt;offsetY(7))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(200)\\n-&gt;height(200)\\n-&gt;zoom(0.5)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::faces()))\\n\\t))\\n\\t-&gt;otherwise((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(200)\\n-&gt;height(200))\\n\\t-&gt;border(Border::solid(3,Color::BLACK)))\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;nice_couple&#039;))\\n\\t-&gt;conditional(Conditional::ifCondition(\\&quot;face_count &gt;= 1\\&quot;,(new Transformation())\\n\\t-&gt;effect(Effect::shadow()-&gt;strength(10)\\n\\t-&gt;color(Color::rgb(\\&quot;acb2b9\\&quot;))\\n-&gt;offsetX(7)\\n-&gt;offsetY(7))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(200)\\n-&gt;height(200)\\n-&gt;zoom(0.5)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::faces()))\\n\\t))\\n\\t-&gt;otherwise((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(200)\\n-&gt;height(200))\\n\\t-&gt;border(Border::solid(3,Color::BLACK)))\\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;nice_couple\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;if\\&quot;=&gt;\\&quot;fc_gte_1\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;faces\\&quot;, \\&quot;zoom\\&quot;=&gt;\\&quot;0.5\\&quot;, \\&quot;width\\&quot;=&gt;200, \\&quot;height\\&quot;=&gt;200, \\&quot;effect\\&quot;=&gt;\\&quot;shadow:10\\&quot;, \\&quot;color\\&quot;=&gt;\\&quot;#acb2b9\\&quot;, \\&quot;x\\&quot;=&gt;7, \\&quot;y\\&quot;=&gt;7, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;), array(\\&quot;if\\&quot;=&gt;\\&quot;else\\&quot;, \\&quot;width\\&quot;=&gt;200, \\&quot;height\\&quot;=&gt;200, \\&quot;border\\&quot;=&gt;\\&quot;3px_solid_black\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;nice_couple\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;if\\&quot;=&gt;\\&quot;fc_gte_1\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;faces\\&quot;, \\&quot;zoom\\&quot;=&gt;\\&quot;0.5\\&quot;, \\&quot;width\\&quot;=&gt;200, \\&quot;height\\&quot;=&gt;200, \\&quot;effect\\&quot;=&gt;\\&quot;shadow:10\\&quot;, \\&quot;color\\&quot;=&gt;\\&quot;#acb2b9\\&quot;, \\&quot;x\\&quot;=&gt;7, \\&quot;y\\&quot;=&gt;7, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;),\\n  array(\\&quot;if\\&quot;=&gt;\\&quot;else\\&quot;, \\&quot;width\\&quot;=&gt;200, \\&quot;height\\&quot;=&gt;200, \\&quot;border\\&quot;=&gt;\\&quot;3px_solid_black\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;)\\n  )))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().if(\\&quot;fc_gte_1\\&quot;).gravity(\\&quot;faces\\&quot;).zoom(0.5).width(200).height(200).effect(\\&quot;shadow:10\\&quot;).color(\\&quot;#acb2b9\\&quot;).x(7).y(7).crop(\\&quot;thumb\\&quot;).chain() .if(\\&quot;else\\&quot;).width(200).height(200).border(\\&quot;3px_solid_black\\&quot;).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;nice_couple\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .if(\\&quot;fc_gte_1\\&quot;).gravity(\\&quot;faces\\&quot;).zoom(0.5).width(200).height(200).effect(\\&quot;shadow:10\\&quot;).color(\\&quot;#acb2b9\\&quot;).x(7).y(7).crop(\\&quot;thumb\\&quot;).chain()\\n  .if(\\&quot;else\\&quot;).width(200).height(200).border(\\&quot;3px_solid_black\\&quot;).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;nice_couple\\&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;nice_couple\\&quot;, transformation: [ {if: \\&quot;fc_gte_1\\&quot;, gravity: \\&quot;faces\\&quot;, zoom: 0.5, width: 200, height: 200, effect: \\&quot;shadow:10\\&quot;, color: \\&quot;#acb2b9\\&quot;, x: 7, y: 7, crop: \\&quot;thumb\\&quot;}, {if: \\&quot;else\\&quot;, width: 200, height: 200, border: \\&quot;3px_solid_black\\&quot;, crop: \\&quot;scale\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;nice_couple\\&quot;, transformation: [\\n  {if: \\&quot;fc_gte_1\\&quot;, gravity: \\&quot;faces\\&quot;, zoom: 0.5, width: 200, height: 200, effect: \\&quot;shadow:10\\&quot;, color: \\&quot;#acb2b9\\&quot;, x: 7, y: 7, crop: \\&quot;thumb\\&quot;},\\n  {if: \\&quot;else\\&quot;, width: 200, height: 200, border: \\&quot;3px_solid_black\\&quot;, crop: \\&quot;scale\\&quot;}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().If(\\&quot;fc_gte_1\\&quot;).Gravity(\\&quot;faces\\&quot;).Zoom(0.5).Width(200).Height(200).Effect(\\&quot;shadow:10\\&quot;).Color(\\&quot;#acb2b9\\&quot;).X(7).Y(7).Crop(\\&quot;thumb\\&quot;).Chain() .If(\\&quot;else\\&quot;).Width(200).Height(200).Border(\\&quot;3px_solid_black\\&quot;).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;nice_couple\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .If(\\&quot;fc_gte_1\\&quot;).Gravity(\\&quot;faces\\&quot;).Zoom(0.5).Width(200).Height(200).Effect(\\&quot;shadow:10\\&quot;).Color(\\&quot;#acb2b9\\&quot;).X(7).Y(7).Crop(\\&quot;thumb\\&quot;).Chain()\\n  .If(\\&quot;else\\&quot;).Width(200).Height(200).Border(\\&quot;3px_solid_black\\&quot;).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;nice_couple\\&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;nice_couple&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;if_fc_gte_1,g_faces,c_thumb,z_0.50,w_200,h_200,e_shadow:10,co_rgb:acb2b9,x_7,y_7\\\/if_else,w_200,h_200,bo_3px_solid_black\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;nice_couple&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;if_fc_gte_1,g_faces,c_thumb,z_0.50,w_200,h_200,e_shadow:10,co_rgb:acb2b9,x_7,y_7\\\/if_else,w_200,h_200,bo_3px_solid_black\\&quot;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setIf(\\&quot;fc_gte_1\\&quot;).setGravity(\\&quot;faces\\&quot;).setZoom(0.5).setWidth(200).setHeight(200).setEffect(\\&quot;shadow:10\\&quot;).setColor(\\&quot;#acb2b9\\&quot;).setX(7).setY(7).setCrop(\\&quot;thumb\\&quot;).chain() .setIf(\\&quot;else\\&quot;).setWidth(200).setHeight(200).setBorder(\\&quot;3px_solid_black\\&quot;).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;nice_couple\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setIf(\\&quot;fc_gte_1\\&quot;).setGravity(\\&quot;faces\\&quot;).setZoom(0.5).setWidth(200).setHeight(200).setEffect(\\&quot;shadow:10\\&quot;).setColor(\\&quot;#acb2b9\\&quot;).setX(7).setY(7).setCrop(\\&quot;thumb\\&quot;).chain()\\n  .setIf(\\&quot;else\\&quot;).setWidth(200).setHeight(200).setBorder(\\&quot;3px_solid_black\\&quot;).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;nice_couple\\&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().if(\\&quot;fc_gte_1\\&quot;).gravity(\\&quot;faces\\&quot;).zoom(0.5).width(200).height(200).effect(\\&quot;shadow:10\\&quot;).color(\\&quot;#acb2b9\\&quot;).x(7).y(7).crop(\\&quot;thumb\\&quot;).chain() .if(\\&quot;else\\&quot;).width(200).height(200).border(\\&quot;3px_solid_black\\&quot;).crop(\\&quot;scale\\&quot;)).generate(\\&quot;nice_couple\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .if(\\&quot;fc_gte_1\\&quot;).gravity(\\&quot;faces\\&quot;).zoom(0.5).width(200).height(200).effect(\\&quot;shadow:10\\&quot;).color(\\&quot;#acb2b9\\&quot;).x(7).y(7).crop(\\&quot;thumb\\&quot;).chain()\\n  .if(\\&quot;else\\&quot;).width(200).height(200).border(\\&quot;3px_solid_black\\&quot;).crop(\\&quot;scale\\&quot;)).generate(\\&quot;nice_couple\\&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;nice_couple&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;if_fc_gte_1,g_faces,c_thumb,z_0.50,w_200,h_200,e_shadow:10,co_rgb:acb2b9,x_7,y_7\\\/if_else,w_200,h_200,bo_3px_solid_black\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;nice_couple&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;if_fc_gte_1,g_faces,c_thumb,z_0.50,w_200,h_200,e_shadow:10,co_rgb:acb2b9,x_7,y_7\\\/if_else,w_200,h_200,bo_3px_solid_black\\&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;nice_couple\\&quot;)\\n\\t addTransformation(\\&quot;if_fc_gte_1,g_faces,c_thumb,z_0.50,w_200,h_200,e_shadow:10,co_rgb:acb2b9,x_7,y_7\\\/if_else,w_200,h_200,bo_3px_solid_black\\&quot;) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;nice_couple\\&quot;)\\n\\t addTransformation(\\&quot;if_fc_gte_1,g_faces,c_thumb,z_0.50,w_200,h_200,e_shadow:10,co_rgb:acb2b9,x_7,y_7\\\/if_else,w_200,h_200,bo_3px_solid_black\\&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;nice_couple\\&quot;, {transformation: [ {if: \\&quot;fc_gte_1\\&quot;, gravity: \\&quot;faces\\&quot;, zoom: \\&quot;0.5\\&quot;, width: 200, height: 200, effect: \\&quot;shadow:10\\&quot;, color: \\&quot;#acb2b9\\&quot;, x: 7, y: 7, crop: \\&quot;thumb\\&quot;}, {if: \\&quot;else\\&quot;, width: 200, height: 200, border: \\&quot;3px_solid_black\\&quot;, crop: \\&quot;scale\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;nice_couple\\&quot;, {transformation: [\\n  {if: \\&quot;fc_gte_1\\&quot;, gravity: \\&quot;faces\\&quot;, zoom: \\&quot;0.5\\&quot;, width: 200, height: 200, effect: \\&quot;shadow:10\\&quot;, color: \\&quot;#acb2b9\\&quot;, x: 7, y: 7, crop: \\&quot;thumb\\&quot;},\\n  {if: \\&quot;else\\&quot;, width: 200, height: 200, border: \\&quot;3px_solid_black\\&quot;, crop: \\&quot;scale\\&quot;}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple\\&quot;).conditional(\\n  ifCondition(\\n    \\&quot;face_count &gt;= 1\\&quot;,\\n    new Transformation()\\n      .effect(shadow().strength(10).color(\\&quot;#acb2b9\\&quot;).offsetX(7).offsetY(7))\\n      .resize(\\n        thumbnail().width(200).height(200).zoom(0.5).gravity(focusOn(faces()))\\n      )\\n  ).otherwise(\\n    new Transformation()\\n      .resize(scale().width(200).height(200))\\n      .border(solid(3, \\&quot;black\\&quot;))\\n  )\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple\\&quot;).conditional(\\n  ifCondition(\\n    \\&quot;face_count &gt;= 1\\&quot;,\\n    new Transformation()\\n      .effect(shadow().strength(10).color(\\&quot;#acb2b9\\&quot;).offsetX(7).offsetY(7))\\n      .resize(\\n        thumbnail().width(200).height(200).zoom(0.5).gravity(focusOn(faces()))\\n      )\\n  ).otherwise(\\n    new Transformation()\\n      .resize(scale().width(200).height(200))\\n      .border(solid(3, \\&quot;black\\&quot;))\\n  )\\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\\\/if_fc_gte_1,g_faces,c_thumb,z_0.50,w_200,h_200,e_shadow:10,co_rgb:acb2b9,x_7,y_7\\\/if_else,w_200,h_200,bo_3px_solid_black\\\/nice_couple&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;if&quot;:&quot;fc_gte_1&quot;,&quot;gravity&quot;:&quot;faces&quot;,&quot;crop_mode&quot;:&quot;thumb&quot;,&quot;zoom&quot;:&quot;0.50&quot;,&quot;width&quot;:&quot;200&quot;,&quot;height&quot;:&quot;200&quot;,&quot;effect&quot;:&quot;shadow:10&quot;,&quot;color&quot;:&quot;rgb:acb2b9&quot;,&quot;x&quot;:&quot;7&quot;,&quot;y&quot;:&quot;7&quot;},{&quot;if&quot;:&quot;else&quot;,&quot;width&quot;:&quot;200&quot;,&quot;height&quot;:&quot;200&quot;,&quot;border&quot;:&quot;3px_solid_black&quot;}],&quot;transformation_string&quot;:&quot;if_fc_gte_1,g_faces,c_thumb,z_0.50,w_200,h_200,e_shadow:10,co_rgb:acb2b9,x_7,y_7\\\/if_else,w_200,h_200,bo_3px_solid_black&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;nice_couple&quot;,&quot;extension&quot;:&quot;&quot;,&quot;format&quot;:&quot;&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><\/p>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<div style=\"text-align:center;\">\n<span style=\"display:inline-block;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/if_fc_gte_1,g_faces,c_thumb,z_0.50,w_200,h_200,e_shadow:10,co_rgb:acb2b9,x_7,y_7\/if_else,w_200,h_200,bo_3px_solid_black\/nice_couple\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/if_fc_gte_1,g_faces,c_thumb,z_0.50,w_200,h_200,e_shadow:10,co_rgb:acb2b9,x_7,y_7\/if_else,w_200,h_200,bo_3px_solid_black\/nice_couple\" alt=\"image with one or more faces\" title=\"image with one or more faces\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<p><\/span><span style=\"display:inline-block;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/if_fc_gte_1,g_faces,c_thumb,z_0.50,w_200,h_200,e_shadow:10,co_rgb:acb2b9,x_7,y_7\/if_else,w_200,h_200,bo_3px_solid_black\/golden_gate\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/if_fc_gte_1,g_faces,c_thumb,z_0.50,w_200,h_200,e_shadow:10,co_rgb:acb2b9,x_7,y_7\/if_else,w_200,h_200,bo_3px_solid_black\/golden_gate\" alt=\"image without faces\" title=\"image without faces\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<\/span><\/p>\n<\/div>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<p>You can learn more about conditional transformations <a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations#conditional_transformations\">here<\/a>.<\/p>\n<h2>Face to face<\/h2>\n<p>Just a reminder that in addition to applying all this cool stuff on images that you or your users directly upload, you can also use the same tricks with remotely <a href=\"https:\/\/cloudinary.com\/documentation\/fetch_remote_images\">fetched<\/a> images, such as <a href=\"https:\/\/cloudinary.com\/documentation\/social_media_profile_pictures\">Facebook profile pictures<\/a>.<\/p>\n<p>For example, you can allow your users to select to use their Facebook profile photo as the basis for their account profile photo in your app and then apply resizing, rounding, artistic effects, or any other transformation to fit your site\u2019s art direction, while ensuring that the detected face of the fetched photo remains the main focus of the final photo.<\/p>\n<p>Here we apply cropping and several other transformations to the Facebook profile photo from the <strong>Remembering JFK<\/strong> page:<\/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;268587306614095\\&quot;, {type: \\&quot;facebook\\&quot;, transformation: [ {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.65\\&quot;, radius: \\&quot;max\\&quot;, effect: \\&quot;art:sizzle\\&quot;, crop: \\&quot;thumb\\&quot;}, {effect: \\&quot;shadow\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;268587306614095\\&quot;, {type: \\&quot;facebook\\&quot;, transformation: [\\n  {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.65\\&quot;, radius: \\&quot;max\\&quot;, effect: \\&quot;art:sizzle\\&quot;, crop: \\&quot;thumb\\&quot;},\\n  {effect: \\&quot;shadow\\&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;268587306614095\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .effect(artisticFilter(\\&quot;sizzle\\&quot;))\\n  .effect(shadow())\\n  .setDeliveryType(\\&quot;facebook\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;268587306614095\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .effect(artisticFilter(\\&quot;sizzle\\&quot;))\\n  .effect(shadow())\\n  .setDeliveryType(\\&quot;facebook\\&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;268587306614095\\&quot; type=\\&quot;facebook\\&quot;&gt; &lt;Transformation width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; zoom=\\&quot;0.65\\&quot; radius=\\&quot;max\\&quot; effect=\\&quot;art:sizzle\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;Transformation effect=\\&quot;shadow\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;268587306614095\\&quot; type=\\&quot;facebook\\&quot;&gt;\\n\\t&lt;Transformation width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; zoom=\\&quot;0.65\\&quot; radius=\\&quot;max\\&quot; effect=\\&quot;art:sizzle\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n\\t&lt;Transformation effect=\\&quot;shadow\\&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;268587306614095\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .effect(artisticFilter(\\&quot;sizzle\\&quot;))\\n  .effect(shadow())\\n  .setDeliveryType(\\&quot;facebook\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;268587306614095\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .effect(artisticFilter(\\&quot;sizzle\\&quot;))\\n  .effect(shadow())\\n  .setDeliveryType(\\&quot;facebook\\&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;268587306614095\\&quot; type=\\&quot;facebook\\&quot;&gt; &lt;cld-transformation width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; zoom=\\&quot;0.65\\&quot; radius=\\&quot;max\\&quot; effect=\\&quot;art:sizzle\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;cld-transformation effect=\\&quot;shadow\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;268587306614095\\&quot; type=\\&quot;facebook\\&quot;&gt;\\n\\t&lt;cld-transformation width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; zoom=\\&quot;0.65\\&quot; radius=\\&quot;max\\&quot; effect=\\&quot;art:sizzle\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation effect=\\&quot;shadow\\&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;268587306614095\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .effect(artisticFilter(\\&quot;sizzle\\&quot;))\\n  .effect(shadow())\\n  .setDeliveryType(\\&quot;facebook\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;268587306614095\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .effect(artisticFilter(\\&quot;sizzle\\&quot;))\\n  .effect(shadow())\\n  .setDeliveryType(\\&quot;facebook\\&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;268587306614095\\&quot; type=\\&quot;facebook\\&quot;&gt; &lt;cl-transformation width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; zoom=\\&quot;0.65\\&quot; radius=\\&quot;max\\&quot; effect=\\&quot;art:sizzle\\&quot; crop=\\&quot;thumb\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation effect=\\&quot;shadow\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;268587306614095\\&quot; type=\\&quot;facebook\\&quot;&gt;\\n\\t&lt;cl-transformation width=\\&quot;200\\&quot; height=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; zoom=\\&quot;0.65\\&quot; radius=\\&quot;max\\&quot; effect=\\&quot;art:sizzle\\&quot; crop=\\&quot;thumb\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation effect=\\&quot;shadow\\&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;268587306614095\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .effect(artisticFilter(\\&quot;sizzle\\&quot;))\\n  .effect(shadow())\\n  .setDeliveryType(\\&quot;facebook\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;268587306614095\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .effect(artisticFilter(\\&quot;sizzle\\&quot;))\\n  .effect(shadow())\\n  .setDeliveryType(\\&quot;facebook\\&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;268587306614095&#039;, {type: \\&quot;facebook\\&quot;, transformation: [ {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.65\\&quot;, radius: \\&quot;max\\&quot;, effect: \\&quot;art:sizzle\\&quot;, crop: \\&quot;thumb\\&quot;}, {effect: \\&quot;shadow\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;268587306614095&#039;, {type: \\&quot;facebook\\&quot;, transformation: [\\n  {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.65\\&quot;, radius: \\&quot;max\\&quot;, effect: \\&quot;art:sizzle\\&quot;, crop: \\&quot;thumb\\&quot;},\\n  {effect: \\&quot;shadow\\&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;268587306614095\\&quot;).image(type=\\&quot;facebook\\&quot;, transformation=[ {&#039;width&#039;: 200, &#039;height&#039;: 200, &#039;gravity&#039;: \\&quot;face\\&quot;, &#039;zoom&#039;: \\&quot;0.65\\&quot;, &#039;radius&#039;: \\&quot;max\\&quot;, &#039;effect&#039;: \\&quot;art:sizzle\\&quot;, &#039;crop&#039;: \\&quot;thumb\\&quot;}, {&#039;effect&#039;: \\&quot;shadow\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;268587306614095\\&quot;).image(type=\\&quot;facebook\\&quot;, transformation=[\\n  {&#039;width&#039;: 200, &#039;height&#039;: 200, &#039;gravity&#039;: \\&quot;face\\&quot;, &#039;zoom&#039;: \\&quot;0.65\\&quot;, &#039;radius&#039;: \\&quot;max\\&quot;, &#039;effect&#039;: \\&quot;art:sizzle\\&quot;, &#039;crop&#039;: \\&quot;thumb\\&quot;},\\n  {&#039;effect&#039;: \\&quot;shadow\\&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;268587306614095&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(200)\\n-&gt;height(200)\\n-&gt;zoom(0.65)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t)\\n\\t-&gt;roundCorners(RoundCorners::max())\\n\\t-&gt;effect(Effect::artisticFilter(\\n\\tArtisticFilter::sizzle()))\\n\\t-&gt;effect(Effect::shadow())\\n\\t-&gt;deliveryType(\\&quot;facebook\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;268587306614095&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(200)\\n-&gt;height(200)\\n-&gt;zoom(0.65)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t)\\n\\t-&gt;roundCorners(RoundCorners::max())\\n\\t-&gt;effect(Effect::artisticFilter(\\n\\tArtisticFilter::sizzle()))\\n\\t-&gt;effect(Effect::shadow())\\n\\t-&gt;deliveryType(\\&quot;facebook\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;268587306614095\\&quot;, array(\\&quot;type\\&quot;=&gt;\\&quot;facebook\\&quot;, \\&quot;transformation\\&quot;=&gt;array( array(\\&quot;width\\&quot;=&gt;200, \\&quot;height\\&quot;=&gt;200, \\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;zoom\\&quot;=&gt;\\&quot;0.65\\&quot;, \\&quot;radius\\&quot;=&gt;\\&quot;max\\&quot;, \\&quot;effect\\&quot;=&gt;\\&quot;art:sizzle\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;), array(\\&quot;effect\\&quot;=&gt;\\&quot;shadow\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;268587306614095\\&quot;, array(\\&quot;type\\&quot;=&gt;\\&quot;facebook\\&quot;, \\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;width\\&quot;=&gt;200, \\&quot;height\\&quot;=&gt;200, \\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;zoom\\&quot;=&gt;\\&quot;0.65\\&quot;, \\&quot;radius\\&quot;=&gt;\\&quot;max\\&quot;, \\&quot;effect\\&quot;=&gt;\\&quot;art:sizzle\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;),\\n  array(\\&quot;effect\\&quot;=&gt;\\&quot;shadow\\&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(200).height(200).gravity(\\&quot;face\\&quot;).zoom(0.65).radius(\\&quot;max\\&quot;).effect(\\&quot;art:sizzle\\&quot;).crop(\\&quot;thumb\\&quot;).chain() .effect(\\&quot;shadow\\&quot;)).type(\\&quot;facebook\\&quot;).imageTag(\\&quot;268587306614095\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .width(200).height(200).gravity(\\&quot;face\\&quot;).zoom(0.65).radius(\\&quot;max\\&quot;).effect(\\&quot;art:sizzle\\&quot;).crop(\\&quot;thumb\\&quot;).chain()\\n  .effect(\\&quot;shadow\\&quot;)).type(\\&quot;facebook\\&quot;).imageTag(\\&quot;268587306614095\\&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;268587306614095\\&quot;, type: \\&quot;facebook\\&quot;, transformation: [ {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: 0.65, radius: \\&quot;max\\&quot;, effect: \\&quot;art:sizzle\\&quot;, crop: \\&quot;thumb\\&quot;}, {effect: \\&quot;shadow\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;268587306614095\\&quot;, type: \\&quot;facebook\\&quot;, transformation: [\\n  {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: 0.65, radius: \\&quot;max\\&quot;, effect: \\&quot;art:sizzle\\&quot;, crop: \\&quot;thumb\\&quot;},\\n  {effect: \\&quot;shadow\\&quot;}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(200).Height(200).Gravity(\\&quot;face\\&quot;).Zoom(0.65).Radius(\\&quot;max\\&quot;).Effect(\\&quot;art:sizzle\\&quot;).Crop(\\&quot;thumb\\&quot;).Chain() .Effect(\\&quot;shadow\\&quot;)).Action(\\&quot;facebook\\&quot;).BuildImageTag(\\&quot;268587306614095\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Width(200).Height(200).Gravity(\\&quot;face\\&quot;).Zoom(0.65).Radius(\\&quot;max\\&quot;).Effect(\\&quot;art:sizzle\\&quot;).Crop(\\&quot;thumb\\&quot;).Chain()\\n  .Effect(\\&quot;shadow\\&quot;)).Action(\\&quot;facebook\\&quot;).BuildImageTag(\\&quot;268587306614095\\&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;268587306614095&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(200)\\n.height(200)\\n.zoom(0.65)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.roundCorners(RoundCorners.max())\\n\\t.effect(Effect.artisticFilter(\\n\\tArtisticFilter.sizzle()))\\n\\t.effect(Effect.shadow())\\n\\t.setDeliveryType(\\&quot;facebook\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;268587306614095&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(200)\\n.height(200)\\n.zoom(0.65)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.roundCorners(RoundCorners.max())\\n\\t.effect(Effect.artisticFilter(\\n\\tArtisticFilter.sizzle()))\\n\\t.effect(Effect.shadow())\\n\\t.setDeliveryType(\\&quot;facebook\\&quot;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setType( \\&quot;facebook\\&quot;).setTransformation(CLDTransformation().setWidth(200).setHeight(200).setGravity(\\&quot;face\\&quot;).setZoom(0.65).setRadius(\\&quot;max\\&quot;).setEffect(\\&quot;art:sizzle\\&quot;).setCrop(\\&quot;thumb\\&quot;).chain() .setEffect(\\&quot;shadow\\&quot;)).generate(\\&quot;268587306614095\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setType( \\&quot;facebook\\&quot;).setTransformation(CLDTransformation()\\n  .setWidth(200).setHeight(200).setGravity(\\&quot;face\\&quot;).setZoom(0.65).setRadius(\\&quot;max\\&quot;).setEffect(\\&quot;art:sizzle\\&quot;).setCrop(\\&quot;thumb\\&quot;).chain()\\n  .setEffect(\\&quot;shadow\\&quot;)).generate(\\&quot;268587306614095\\&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(200).height(200).gravity(\\&quot;face\\&quot;).zoom(0.65).radius(\\&quot;max\\&quot;).effect(\\&quot;art:sizzle\\&quot;).crop(\\&quot;thumb\\&quot;).chain() .effect(\\&quot;shadow\\&quot;)).type(\\&quot;facebook\\&quot;).generate(\\&quot;268587306614095\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .width(200).height(200).gravity(\\&quot;face\\&quot;).zoom(0.65).radius(\\&quot;max\\&quot;).effect(\\&quot;art:sizzle\\&quot;).crop(\\&quot;thumb\\&quot;).chain()\\n  .effect(\\&quot;shadow\\&quot;)).type(\\&quot;facebook\\&quot;).generate(\\&quot;268587306614095\\&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;268587306614095&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_200,h_200,g_face,c_thumb,z_0.65,r_max,e_art:sizzle\\\/e_shadow\\&quot;)\\n\\t.setDeliveryType(\\&quot;facebook\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;268587306614095&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;w_200,h_200,g_face,c_thumb,z_0.65,r_max,e_art:sizzle\\\/e_shadow\\&quot;)\\n\\t.setDeliveryType(\\&quot;facebook\\&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;268587306614095\\&quot;)\\n\\t resize(Resize.thumbnail() { width(200)\\n height(200)\\n zoom(0.65F)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t })\\n\\t roundCorners(RoundCorners.max())\\n\\t effect(Effect.artisticFilter(\\n\\tArtisticFilter.sizzle()))\\n\\t effect(Effect.shadow())\\n\\t deliveryType(\\&quot;facebook\\&quot;) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;268587306614095\\&quot;)\\n\\t resize(Resize.thumbnail() { width(200)\\n height(200)\\n zoom(0.65F)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t })\\n\\t roundCorners(RoundCorners.max())\\n\\t effect(Effect.artisticFilter(\\n\\tArtisticFilter.sizzle()))\\n\\t effect(Effect.shadow())\\n\\t deliveryType(\\&quot;facebook\\&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;268587306614095\\&quot;, {type: \\&quot;facebook\\&quot;, transformation: [ {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.65\\&quot;, radius: \\&quot;max\\&quot;, effect: \\&quot;art:sizzle\\&quot;, crop: \\&quot;thumb\\&quot;}, {effect: \\&quot;shadow\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;268587306614095\\&quot;, {type: \\&quot;facebook\\&quot;, transformation: [\\n  {width: 200, height: 200, gravity: \\&quot;face\\&quot;, zoom: \\&quot;0.65\\&quot;, radius: \\&quot;max\\&quot;, effect: \\&quot;art:sizzle\\&quot;, crop: \\&quot;thumb\\&quot;},\\n  {effect: \\&quot;shadow\\&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;268587306614095\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .effect(artisticFilter(\\&quot;sizzle\\&quot;))\\n  .effect(shadow())\\n  .setDeliveryType(\\&quot;facebook\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;268587306614095\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .height(200)\\n      .zoom(0.65)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max())\\n  .effect(artisticFilter(\\&quot;sizzle\\&quot;))\\n  .effect(shadow())\\n  .setDeliveryType(\\&quot;facebook\\&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\\\/facebook\\\/w_200,h_200,g_face,c_thumb,z_0.65,r_max,e_art:sizzle\\\/e_shadow\\\/268587306614095&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;facebook&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;width&quot;:&quot;200&quot;,&quot;height&quot;:&quot;200&quot;,&quot;gravity&quot;:&quot;face&quot;,&quot;crop_mode&quot;:&quot;thumb&quot;,&quot;zoom&quot;:&quot;0.65&quot;,&quot;radius&quot;:&quot;max&quot;,&quot;effect&quot;:&quot;art:sizzle&quot;},{&quot;effect&quot;:&quot;shadow&quot;}],&quot;transformation_string&quot;:&quot;w_200,h_200,g_face,c_thumb,z_0.65,r_max,e_art:sizzle\\\/e_shadow&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;268587306614095&quot;,&quot;extension&quot;:&quot;&quot;,&quot;format&quot;:&quot;&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><\/p>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<div style=\"text-align:center;\">\n<span style=\"display:inline-block; margin-right:40px\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/facebook\/268587306614095\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/facebook\/h_200\/268587306614095\" alt=\"Original FB profile photo\" title=\"Original FB profile photo\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<i><font size=\"-1\"><br\/><br\/>Original Facebook profile photo<\/font><\/i>\n<p><\/span><span style=\"display:inline-block;\">\n\u00a0\u00a0\u00a0\u00a0\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/facebook\/w_200,h_200,g_face,c_thumb,z_0.65,r_max,e_art:sizzle\/e_shadow\/268587306614095\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/facebook\/w_200,h_200,g_face,c_thumb,z_0.65,r_max,e_art:sizzle\/e_shadow\/268587306614095\" alt=\"Cropped to a circle using face detection\" title=\"Cropped to a circle using face detection\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<i><font size=\"-1\">Manipulated photo: face thumbnail<br\/>slight zoom,\nartistic filter,<br\/>rounding, shadow<\/font><\/i>\n<\/span><\/p>\n<\/div>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<p>You can do the same with images fetched from other sites, like <a href=\"https:\/\/cloudinary.com\/documentation\/social_media_profile_pictures\">Twitter<\/a>, <a href=\"https:\/\/cloudinary.com\/blog\/display_instagram_and_google_profile_pictures_in_your_website_and_mobile_app\">Google+<\/a>, or from any image URL.<\/p>\n<h2>Face the facts<\/h2>\n<p>By now, the many potential uses for face detection techniques have probably become obvious to you, <i>as plain as the nose on your face<\/i>, you might say\u2026.   OK, I\u2019m done with the painful face puns.<\/p>\n<p>The fact is that almost every Website includes both local and user-generated content that centers around people. It\u2019s essential that those people remain the focus of the displayed pictures regardless of how you resize, crop, add images and text overlays, etc.<\/p>\n<p>Cloudinary\u2019s face detection capabilities and updated mechanism enable you to accomplish all of these things programmatically, using simple transformation parameters, and with very reliable results.<\/p>\n<p>Ready to see how far your creativity can take these face detection features? These features are available in all plans including the free plan, with no add-ins required. If you don\u2019t have a Cloudinary account yet, you can <a href=\"https:\/\/cloudinary.com\/users\/register\/free\">sign up for a free one<\/a>, and give it a go!<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":21467,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[113,165],"class_list":["post-21466","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-face-detection","tag-image-transformation"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Perform Face-Detection Transformation Techniques On-the-Fly<\/title>\n<meta name=\"description\" content=\"Use Cloudinary&#039;s built-in face detection technology to automatically focus crops on faces, blur, pixelate, add overlays to faces, and more, on-the-fly\" \/>\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\/the_many_faces_of_on_the_fly_face_detection\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Perform Face-Detection Transformation Techniques On-the-Fly with Cloudinary\" \/>\n<meta property=\"og:description\" content=\"Use Cloudinary&#039;s built-in face detection technology to automatically focus crops on faces, blur, pixelate, add overlays to faces, and more, on-the-fly\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-08T15:37:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-02T23:19:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649724514\/Web_Assets\/blog\/face_coaster_cover2\/face_coaster_cover2-jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1158\" \/>\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\/the_many_faces_of_on_the_fly_face_detection#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Perform Face-Detection Transformation Techniques On-the-Fly with Cloudinary\",\"datePublished\":\"2017-02-08T15:37:38+00:00\",\"dateModified\":\"2024-10-02T23:19:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection\"},\"wordCount\":7,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724514\/Web_Assets\/blog\/face_coaster_cover2\/face_coaster_cover2.jpg?_i=AA\",\"keywords\":[\"Face Detection\",\"Image Transformation\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2017\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection\",\"url\":\"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection\",\"name\":\"Perform Face-Detection Transformation Techniques On-the-Fly\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724514\/Web_Assets\/blog\/face_coaster_cover2\/face_coaster_cover2.jpg?_i=AA\",\"datePublished\":\"2017-02-08T15:37:38+00:00\",\"dateModified\":\"2024-10-02T23:19:11+00:00\",\"description\":\"Use Cloudinary's built-in face detection technology to automatically focus crops on faces, blur, pixelate, add overlays to faces, and more, on-the-fly\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724514\/Web_Assets\/blog\/face_coaster_cover2\/face_coaster_cover2.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724514\/Web_Assets\/blog\/face_coaster_cover2\/face_coaster_cover2.jpg?_i=AA\",\"width\":1920,\"height\":1158},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Perform Face-Detection Transformation Techniques On-the-Fly with Cloudinary\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Perform Face-Detection Transformation Techniques On-the-Fly","description":"Use Cloudinary's built-in face detection technology to automatically focus crops on faces, blur, pixelate, add overlays to faces, and more, on-the-fly","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\/the_many_faces_of_on_the_fly_face_detection","og_locale":"en_US","og_type":"article","og_title":"Perform Face-Detection Transformation Techniques On-the-Fly with Cloudinary","og_description":"Use Cloudinary's built-in face detection technology to automatically focus crops on faces, blur, pixelate, add overlays to faces, and more, on-the-fly","og_url":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection","og_site_name":"Cloudinary Blog","article_published_time":"2017-02-08T15:37:38+00:00","article_modified_time":"2024-10-02T23:19:11+00:00","og_image":[{"width":1920,"height":1158,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649724514\/Web_Assets\/blog\/face_coaster_cover2\/face_coaster_cover2-jpg?_i=AA","type":"image\/jpeg"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection"},"author":{"name":"","@id":""},"headline":"Perform Face-Detection Transformation Techniques On-the-Fly with Cloudinary","datePublished":"2017-02-08T15:37:38+00:00","dateModified":"2024-10-02T23:19:11+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection"},"wordCount":7,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724514\/Web_Assets\/blog\/face_coaster_cover2\/face_coaster_cover2.jpg?_i=AA","keywords":["Face Detection","Image Transformation"],"inLanguage":"en-US","copyrightYear":"2017","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection","url":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection","name":"Perform Face-Detection Transformation Techniques On-the-Fly","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724514\/Web_Assets\/blog\/face_coaster_cover2\/face_coaster_cover2.jpg?_i=AA","datePublished":"2017-02-08T15:37:38+00:00","dateModified":"2024-10-02T23:19:11+00:00","description":"Use Cloudinary's built-in face detection technology to automatically focus crops on faces, blur, pixelate, add overlays to faces, and more, on-the-fly","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724514\/Web_Assets\/blog\/face_coaster_cover2\/face_coaster_cover2.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724514\/Web_Assets\/blog\/face_coaster_cover2\/face_coaster_cover2.jpg?_i=AA","width":1920,"height":1158},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/the_many_faces_of_on_the_fly_face_detection#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Perform Face-Detection Transformation Techniques On-the-Fly with Cloudinary"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":""}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724514\/Web_Assets\/blog\/face_coaster_cover2\/face_coaster_cover2.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21466","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=21466"}],"version-history":[{"count":6,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21466\/revisions"}],"predecessor-version":[{"id":35839,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21466\/revisions\/35839"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/21467"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=21466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=21466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=21466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}