{"id":21279,"date":"2015-04-02T14:52:24","date_gmt":"2015-04-02T14:52:24","guid":{"rendered":"http:\/\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection"},"modified":"2024-06-04T16:01:05","modified_gmt":"2024-06-04T23:01:05","slug":"powerful_image_manipulation_and_categorization_with_facial_attribute_detection","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection","title":{"rendered":"Advanced Facial Attributes Detection for Image Transformation"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p><strong>Update &#8211; December 2015:<\/strong> <em>The add-on described in this post is no longer available since ReKognition terminated their services. However, all features described here are still available via a different and even better add-on: <a href=\"https:\/\/cloudinary.com\/documentation\/advanced_facial_attributes_detection_addon\">Advanced Facial Attributes Detection\n<\/a><\/em><\/p>\n<p>Face Detection is a great feature that enables the automatic modification of images according to the detected faces within an image, making it simple to intelligently crop, position, resize and transform your images appropriately.<\/p>\n<p>Facial Attribute Detection takes the process even further and extracts meaningful advanced data about the face(s) in the image, including the exact location of facial features. This allows you even greater control over your image categorization, and to automatically use these details to smartly crop, position, rotate and overlay images based on the detected facial features.<\/p>\n<p>Facial Attribute Detection lets you know more than just the location of a person\u2019s facial features. How are they posed in 3 dimensions? Is the person wearing glasses? Do they have their eyes closed? Mouth open? Have a mustache or beard? What is the person\u2019s race, age and gender? What emotion are they displaying? Are they smiling? How beautiful are they? Retrieving this information makes it a simple matter to automatically categorize and tag your collection of images.<\/p>\n<p>All of this is made possible with the ReKognition add-on, which has been directly integrated within Cloudinary\u2019s infrastructure, further extending Cloudinary\u2019s built-in face detection to a robust Facial Attribute Detection feature. By simply setting the <code>detection<\/code> parameter to <code>rekognition_face<\/code> when calling Cloudinary\u2019s upload API, ReKognition is utilized to automatically extract detailed face attributes from the uploaded image.<\/p>\n<cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;Cloudinary::Uploader.upload(\\&quot;woman.jpg\\&quot;, \\n \\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0:detection =&gt; \\&quot;rekognition_face\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;Cloudinary::Uploader.upload(\\&quot;woman.jpg\\&quot;, \\n \\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0:detection =&gt; \\&quot;rekognition_face\\&quot;)&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;rawCodeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::upload(\\&quot;woman.jpg\\&quot;, \\n \\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0array(\\n \\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\&quot;detection\\&quot; =&gt; \\&quot;rekognition_face\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::upload(\\&quot;woman.jpg\\&quot;, \\n \\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0array(\\n \\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\&quot;detection\\&quot; =&gt; \\&quot;rekognition_face\\&quot;));&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;woman.jpg\\&quot;, \\n \\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0detection = \\&quot;rekognition_face\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;woman.jpg\\&quot;, \\n \\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0detection = \\&quot;rekognition_face\\&quot;)&quot;},{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;javascript&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;woman.jpg\\&quot;, \\n \\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0function(result) {console.log(result); }, { detection: \\&quot;rekognition_face\\&quot; });&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;woman.jpg\\&quot;, \\n \\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0function(result) {console.log(result); }, { detection: \\&quot;rekognition_face\\&quot; });&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader().upload(\\&quot;woman.jpg\\&quot;, \\n \\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0Cloudinary.asMap(\\&quot;detection\\&quot;, \\&quot;rekognition_face\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader().upload(\\&quot;woman.jpg\\&quot;, \\n \\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0\\u00a0Cloudinary.asMap(\\&quot;detection\\&quot;, \\&quot;rekognition_face\\&quot;));&quot;}]\"\n      parsed-url=\"[]\"\n      with-url=\"false\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget>\n<p><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/woman.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_300\/woman.jpg\" alt=\"Original woman image\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"300\" height=\"206\"\/><\/a><\/p>\n<p>The example JSON snippet displayed from the example image above contains the result returned from the face ReKognition request, which includes very detailed information regarding the face that was automatically detected in the image.<\/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\">{<span class=\"hljs-string\">\"rekognition_face\"<\/span>: \n <span class=\"hljs-string\">\"status\"<\/span>: <span class=\"hljs-string\">\"complete\"<\/span>,\n \u00a0<span class=\"hljs-string\">\"data\"<\/span>: &#91;\n \u00a0\u00a0\u00a0{\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"boundingbox\"<\/span>: {\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"tl\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">231.45<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">102.52<\/span>},\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"size\"<\/span>: {<span class=\"hljs-string\">\"width\"<\/span>: <span class=\"hljs-number\">240.77<\/span>, <span class=\"hljs-string\">\"height\"<\/span>: <span class=\"hljs-number\">240.77<\/span> }},\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"confidence\"<\/span>: <span class=\"hljs-number\">1<\/span>,\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"eye_left\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>:<span class=\"hljs-number\">309.6<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">190.1<\/span>},\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"eye_right\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">407.9<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">213.6<\/span>},\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"nose\"<\/span>: {<span class=\"hljs-string\">\"x\"<\/span>: <span class=\"hljs-number\">199.1<\/span>, <span class=\"hljs-string\">\"y\"<\/span>: <span class=\"hljs-number\">204.0<\/span>},\n \u00a0\u00a0\u00a0\u00a0\u00a0\u2026\n \u00a0\u00a0\u00a0\u00a0\u00a0\u2026\n \u00a0\u00a0\u00a0\u00a0\u00a0\u2026\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"smile\"<\/span>: <span class=\"hljs-number\">0.96<\/span>,\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"glasses\"<\/span>: <span class=\"hljs-number\">0.01<\/span>,\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"sunglasses\"<\/span>: <span class=\"hljs-number\">0.04<\/span>,\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"beard\"<\/span>: <span class=\"hljs-number\">0<\/span>,\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"mustache\"<\/span>: <span class=\"hljs-number\">0<\/span>,\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"eye_closed\"<\/span>: <span class=\"hljs-number\">0<\/span>,\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"mouth_open_wide\"<\/span>: <span class=\"hljs-number\">0.73<\/span>,\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"beauty\"<\/span>: <span class=\"hljs-number\">0.63531<\/span>,\n \u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"sex\"<\/span>: <span class=\"hljs-number\">1<\/span>\n \u00a0\u00a0\u00a0}\n \u00a0]\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>You can also use Cloudinary\u2019s Admin API to apply ReKognition face detection to already uploaded images (based on their public IDs), and the face attributes that were previously extracted are also available using the Admin API\u2019s show resource details method.<\/p>\n<h2>Face detection based cropping<\/h2>\n<p>Based on the position of facial attributes detected by the ReKognition add-on, Cloudinary can crop your images to focus on the detected facial features, while providing a large set of <a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations\">image transformation<\/a> and cropping options when using a Cloudinary delivery URL or calling Cloudinary\u2019s <a href=\"https:\/\/cloudinary.com\/image-api\">image API<\/a>.<\/p>\n<p>To focus an automatic crop on the detected faces, simply set the <code>crop<\/code> parameter to <code>thumb<\/code>, <code>fill<\/code> or <code>crop<\/code> and the <code>gravity<\/code> parameter to <code>rek_faces<\/code> (set <code>gravity<\/code> to <code>rek_face<\/code> for focusing on the single largest detected face in the image). The resulting images are dynamically generated on-the-fly and the result is delivered via a fast CDN.<\/p>\n<p><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/nice_couple.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_400\/nice_couple.jpg\" alt=\"Original photo\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"400\" height=\"267\"\/><\/a><\/p>\n<p>The following code sample generates a 150&#215;150 thumbnail of the <code>nice_couple<\/code>image shown above, using multiple face detection based cropping.<\/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.jpg\\&quot;, {gravity: \\&quot;rek_faces\\&quot;, width: 150, height: 150, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;nice_couple.jpg\\&quot;, {gravity: \\&quot;rek_faces\\&quot;, width: 150, height: 150, crop: \\&quot;thumb\\&quot;})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(150)\\n    .height(150)\\n    .gravity(focusOn(\\&quot;rek_faces\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(150)\\n    .height(150)\\n    .gravity(focusOn(\\&quot;rek_faces\\&quot;))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;nice_couple.jpg\\&quot; &gt; &lt;Transformation gravity=\\&quot;rek_faces\\&quot; width=\\&quot;150\\&quot; height=\\&quot;150\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;nice_couple.jpg\\&quot; &gt;\\n\\t&lt;Transformation gravity=\\&quot;rek_faces\\&quot; width=\\&quot;150\\&quot; height=\\&quot;150\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n&lt;\\\/Image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;cloudinary-react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue_2&quot;,&quot;framework&quot;:&quot;vue_2&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(150)\\n    .height(150)\\n    .gravity(focusOn(\\&quot;rek_faces\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(150)\\n    .height(150)\\n    .gravity(focusOn(\\&quot;rek_faces\\&quot;))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;nice_couple.jpg\\&quot; &gt; &lt;cld-transformation gravity=\\&quot;rek_faces\\&quot; width=\\&quot;150\\&quot; height=\\&quot;150\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;nice_couple.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation gravity=\\&quot;rek_faces\\&quot; width=\\&quot;150\\&quot; height=\\&quot;150\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n&lt;\\\/cld-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;cloudinary-vue&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular_2&quot;,&quot;framework&quot;:&quot;angular_2&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(150)\\n    .height(150)\\n    .gravity(focusOn(\\&quot;rek_faces\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(150)\\n    .height(150)\\n    .gravity(focusOn(\\&quot;rek_faces\\&quot;))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;nice_couple.jpg\\&quot; &gt; &lt;cl-transformation gravity=\\&quot;rek_faces\\&quot; width=\\&quot;150\\&quot; height=\\&quot;150\\&quot; crop=\\&quot;thumb\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;nice_couple.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation gravity=\\&quot;rek_faces\\&quot; width=\\&quot;150\\&quot; height=\\&quot;150\\&quot; crop=\\&quot;thumb\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n&lt;\\\/cl-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/angular-5.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js_2&quot;,&quot;framework&quot;:&quot;js_2&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(150)\\n    .height(150)\\n    .gravity(focusOn(\\&quot;rek_faces\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(150)\\n    .height(150)\\n    .gravity(focusOn(\\&quot;rek_faces\\&quot;))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;nice_couple.jpg&#039;, {gravity: \\&quot;rek_faces\\&quot;, width: 150, height: 150, crop: \\&quot;thumb\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;nice_couple.jpg&#039;, {gravity: \\&quot;rek_faces\\&quot;, width: 150, height: 150, crop: \\&quot;thumb\\&quot;}).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryImage(\\&quot;nice_couple.jpg\\&quot;).image(gravity=\\&quot;rek_faces\\&quot;, width=150, height=150, crop=\\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;nice_couple.jpg\\&quot;).image(gravity=\\&quot;rek_faces\\&quot;, width=150, height=150, crop=\\&quot;thumb\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new ImageTag(&#039;nice_couple.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(150)\\n-&gt;height(150)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\&quot;rek_faces\\&quot;))\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;nice_couple.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(150)\\n-&gt;height(150)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\&quot;rek_faces\\&quot;))\\n\\t);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;nice_couple.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;rek_faces\\&quot;, \\&quot;width\\&quot;=&gt;150, \\&quot;height\\&quot;=&gt;150, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;nice_couple.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;rek_faces\\&quot;, \\&quot;width\\&quot;=&gt;150, \\&quot;height\\&quot;=&gt;150, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().gravity(\\&quot;rek_faces\\&quot;).width(150).height(150).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;nice_couple.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().gravity(\\&quot;rek_faces\\&quot;).width(150).height(150).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;nice_couple.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;nice_couple.jpg\\&quot;, gravity: \\&quot;rek_faces\\&quot;, width: 150, height: 150, crop: \\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;nice_couple.jpg\\&quot;, gravity: \\&quot;rek_faces\\&quot;, width: 150, height: 150, crop: \\&quot;thumb\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Gravity(\\&quot;rek_faces\\&quot;).Width(150).Height(150).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;nice_couple.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Gravity(\\&quot;rek_faces\\&quot;).Width(150).Height(150).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;nice_couple.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;nice_couple.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(150)\\n.height(150)\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_faces\\&quot;))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;nice_couple.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(150)\\n.height(150)\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_faces\\&quot;))\\n\\t));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setGravity(\\&quot;rek_faces\\&quot;).setWidth(150).setHeight(150).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;nice_couple.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setGravity(\\&quot;rek_faces\\&quot;).setWidth(150).setHeight(150).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;nice_couple.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;rek_faces\\&quot;).width(150).height(150).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;nice_couple.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().gravity(\\&quot;rek_faces\\&quot;).width(150).height(150).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;nice_couple.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;nice_couple.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(150)\\n.height(150)\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_faces\\&quot;))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;nice_couple.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(150)\\n.height(150)\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_faces\\&quot;))\\n\\t));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Flutter&quot;,&quot;packageName&quot;:&quot;cloudinary_flutter&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;kotlin&quot;,&quot;framework&quot;:&quot;kotlin&quot;,&quot;language&quot;:&quot;kotlin&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;nice_couple.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(150)\\n height(150)\\n\\t gravity(\\n\\tGravity.focusOn(\\&quot;rek_faces\\&quot;))\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;nice_couple.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(150)\\n height(150)\\n\\t gravity(\\n\\tGravity.focusOn(\\&quot;rek_faces\\&quot;))\\n\\t }) \\n}.generate()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Kotlin&quot;,&quot;packageName&quot;:&quot;kotlin-url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;jquery&quot;,&quot;framework&quot;:&quot;jquery&quot;,&quot;language&quot;:&quot;jquery&quot;,&quot;rawCodeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;nice_couple.jpg\\&quot;, {gravity: \\&quot;rek_faces\\&quot;, width: 150, height: 150, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;nice_couple.jpg\\&quot;, {gravity: \\&quot;rek_faces\\&quot;, width: 150, height: 150, crop: \\&quot;thumb\\&quot;})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(150)\\n    .height(150)\\n    .gravity(focusOn(\\&quot;rek_faces\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;nice_couple.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(150)\\n    .height(150)\\n    .gravity(focusOn(\\&quot;rek_faces\\&quot;))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/upload\\\/c_thumb,g_rek_faces,w_150,h_150\\\/nice_couple.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;thumb&quot;,&quot;gravity&quot;:&quot;rek_faces&quot;,&quot;width&quot;:&quot;150&quot;,&quot;height&quot;:&quot;150&quot;}],&quot;transformation_string&quot;:&quot;c_thumb,g_rek_faces,w_150,h_150&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;nice_couple.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_thumb,g_rek_faces,w_150,h_150\/nice_couple.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_thumb,g_rek_faces,w_150,h_150\/nice_couple.jpg\" alt=\"150x150 thumbnail of nice_couple.jpg\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"150\" height=\"150\"\/><\/a><\/p>\n<h2>Eyes detection based cropping<\/h2>\n<p>Cloudinary can also dynamically crop your images based on the position of detected eyes. Simply set the <code>gravity<\/code> parameter to <code>rek_eyes<\/code> (<code>g_rek_eyes<\/code> for URLs) to center the image on the detected eyes. The example below delivers a 200&#215;60 thumbnail centered on the eyes:<\/p>\n<p><cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;nodejs&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(\\&quot;woman.jpg\\&quot;, {gravity: \\&quot;rek_eyes\\&quot;, width: 200, height: 60, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;woman.jpg\\&quot;, {gravity: \\&quot;rek_eyes\\&quot;, width: 200, height: 60, crop: \\&quot;thumb\\&quot;})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(\\&quot;rek_eyes\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(\\&quot;rek_eyes\\&quot;))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;woman.jpg\\&quot; &gt; &lt;Transformation gravity=\\&quot;rek_eyes\\&quot; width=\\&quot;200\\&quot; height=\\&quot;60\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;woman.jpg\\&quot; &gt;\\n\\t&lt;Transformation gravity=\\&quot;rek_eyes\\&quot; width=\\&quot;200\\&quot; height=\\&quot;60\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n&lt;\\\/Image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;cloudinary-react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue_2&quot;,&quot;framework&quot;:&quot;vue_2&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(\\&quot;rek_eyes\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(\\&quot;rek_eyes\\&quot;))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;woman.jpg\\&quot; &gt; &lt;cld-transformation gravity=\\&quot;rek_eyes\\&quot; width=\\&quot;200\\&quot; height=\\&quot;60\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;woman.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation gravity=\\&quot;rek_eyes\\&quot; width=\\&quot;200\\&quot; height=\\&quot;60\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n&lt;\\\/cld-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;cloudinary-vue&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular_2&quot;,&quot;framework&quot;:&quot;angular_2&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(\\&quot;rek_eyes\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(\\&quot;rek_eyes\\&quot;))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;woman.jpg\\&quot; &gt; &lt;cl-transformation gravity=\\&quot;rek_eyes\\&quot; width=\\&quot;200\\&quot; height=\\&quot;60\\&quot; crop=\\&quot;thumb\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;woman.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation gravity=\\&quot;rek_eyes\\&quot; width=\\&quot;200\\&quot; height=\\&quot;60\\&quot; crop=\\&quot;thumb\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n&lt;\\\/cl-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/angular-5.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js_2&quot;,&quot;framework&quot;:&quot;js_2&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(\\&quot;rek_eyes\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(\\&quot;rek_eyes\\&quot;))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;woman.jpg&#039;, {gravity: \\&quot;rek_eyes\\&quot;, width: 200, height: 60, crop: \\&quot;thumb\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;woman.jpg&#039;, {gravity: \\&quot;rek_eyes\\&quot;, width: 200, height: 60, crop: \\&quot;thumb\\&quot;}).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryImage(\\&quot;woman.jpg\\&quot;).image(gravity=\\&quot;rek_eyes\\&quot;, width=200, height=60, crop=\\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;woman.jpg\\&quot;).image(gravity=\\&quot;rek_eyes\\&quot;, width=200, height=60, crop=\\&quot;thumb\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new ImageTag(&#039;woman.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(200)\\n-&gt;height(60)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;woman.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(200)\\n-&gt;height(60)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;woman.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;rek_eyes\\&quot;, \\&quot;width\\&quot;=&gt;200, \\&quot;height\\&quot;=&gt;60, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;woman.jpg\\&quot;, array(\\&quot;gravity\\&quot;=&gt;\\&quot;rek_eyes\\&quot;, \\&quot;width\\&quot;=&gt;200, \\&quot;height\\&quot;=&gt;60, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().gravity(\\&quot;rek_eyes\\&quot;).width(200).height(60).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;woman.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().gravity(\\&quot;rek_eyes\\&quot;).width(200).height(60).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;woman.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;woman.jpg\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, width: 200, height: 60, crop: \\&quot;thumb\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;woman.jpg\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, width: 200, height: 60, crop: \\&quot;thumb\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Gravity(\\&quot;rek_eyes\\&quot;).Width(200).Height(60).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;woman.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Gravity(\\&quot;rek_eyes\\&quot;).Width(200).Height(60).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;woman.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;woman.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(200)\\n.height(60)\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;woman.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(200)\\n.height(60)\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setGravity(\\&quot;rek_eyes\\&quot;).setWidth(200).setHeight(60).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;woman.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setGravity(\\&quot;rek_eyes\\&quot;).setWidth(200).setHeight(60).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;woman.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;rek_eyes\\&quot;).width(200).height(60).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;woman.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().gravity(\\&quot;rek_eyes\\&quot;).width(200).height(60).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;woman.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;woman.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(200)\\n.height(60)\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;woman.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().width(200)\\n.height(60)\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Flutter&quot;,&quot;packageName&quot;:&quot;cloudinary_flutter&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;kotlin&quot;,&quot;framework&quot;:&quot;kotlin&quot;,&quot;language&quot;:&quot;kotlin&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;woman.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(200)\\n height(60)\\n\\t gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;woman.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { width(200)\\n height(60)\\n\\t gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t }) \\n}.generate()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Kotlin&quot;,&quot;packageName&quot;:&quot;kotlin-url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;jquery&quot;,&quot;framework&quot;:&quot;jquery&quot;,&quot;language&quot;:&quot;jquery&quot;,&quot;rawCodeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;woman.jpg\\&quot;, {gravity: \\&quot;rek_eyes\\&quot;, width: 200, height: 60, crop: \\&quot;thumb\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;woman.jpg\\&quot;, {gravity: \\&quot;rek_eyes\\&quot;, width: 200, height: 60, crop: \\&quot;thumb\\&quot;})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(\\&quot;rek_eyes\\&quot;))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).resize(\\n  thumbnail()\\n    .width(200)\\n    .height(60)\\n    .gravity(focusOn(\\&quot;rek_eyes\\&quot;))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/upload\\\/c_thumb,g_rek_eyes,w_200,h_60\\\/woman.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;thumb&quot;,&quot;gravity&quot;:&quot;rek_eyes&quot;,&quot;width&quot;:&quot;200&quot;,&quot;height&quot;:&quot;60&quot;}],&quot;transformation_string&quot;:&quot;c_thumb,g_rek_eyes,w_200,h_60&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;woman.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_thumb,g_rek_eyes,w_200,h_60\/woman.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_thumb,g_rek_eyes,w_200,h_60\/woman.jpg\" alt=\"200x60 thumbnail centered on eyes\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"200\" height=\"60\"\/><\/a><\/p>\n<h2>Facial overlays<\/h2>\n<p>Thanks to the detailed information on the position of facial attributes detected by ReKognition, Cloudinary can add overlays while taking into account the pose of the face, and automatically scale and rotate the overlay accordingly.<\/p>\n<p><cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;nodejs&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(\\&quot;HarlequinMask.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;HarlequinMask.jpg\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;HarlequinMask.jpg\\&quot; &gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;HarlequinMask.jpg\\&quot; &gt;\\n\\n&lt;\\\/Image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;cloudinary-react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue_2&quot;,&quot;framework&quot;:&quot;vue_2&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;HarlequinMask.jpg\\&quot; &gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;HarlequinMask.jpg\\&quot; &gt;\\n\\n&lt;\\\/cld-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;cloudinary-vue&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular_2&quot;,&quot;framework&quot;:&quot;angular_2&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;HarlequinMask.jpg\\&quot; &gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;HarlequinMask.jpg\\&quot; &gt;\\n\\n&lt;\\\/cl-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/angular-5.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js_2&quot;,&quot;framework&quot;:&quot;js_2&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;HarlequinMask.jpg&#039;).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;HarlequinMask.jpg&#039;).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;).image()&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;).image()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new ImageTag(&#039;HarlequinMask.jpg&#039;));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;HarlequinMask.jpg&#039;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;HarlequinMask.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;HarlequinMask.jpg\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().imageTag(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().imageTag(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;HarlequinMask.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;HarlequinMask.jpg\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.BuildImageTag(\\&quot;HarlequinMask.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.BuildImageTag(\\&quot;HarlequinMask.jpg\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;dart&quot;,&quot;framework&quot;:&quot;dart&quot;,&quot;language&quot;:&quot;dart&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;HarlequinMask.jpg&#039;).transformation(Transformation());&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;HarlequinMask.jpg&#039;).transformation(Transformation());&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().generate(\\&quot;HarlequinMask.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().generate(\\&quot;HarlequinMask.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().generate(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().generate(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Android&quot;,&quot;packageName&quot;:&quot;cloudinary-android&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;flutter&quot;,&quot;framework&quot;:&quot;flutter&quot;,&quot;language&quot;:&quot;flutter&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;HarlequinMask.jpg&#039;).transformation(Transformation());&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;HarlequinMask.jpg&#039;).transformation(Transformation());&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Flutter&quot;,&quot;packageName&quot;:&quot;cloudinary_flutter&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;kotlin&quot;,&quot;framework&quot;:&quot;kotlin&quot;,&quot;language&quot;:&quot;kotlin&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;HarlequinMask.jpg\\&quot;) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;HarlequinMask.jpg\\&quot;) \\n}.generate()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Kotlin&quot;,&quot;packageName&quot;:&quot;kotlin-url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;jquery&quot;,&quot;framework&quot;:&quot;jquery&quot;,&quot;language&quot;:&quot;jquery&quot;,&quot;rawCodeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;HarlequinMask.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;HarlequinMask.jpg\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;HarlequinMask.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/upload\\\/HarlequinMask.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[],&quot;transformation_string&quot;:&quot;&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;HarlequinMask.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/HarlequinMask.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_300\/HarlequinMask.jpg\" alt=\"Harlequin mask\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"300\" height=\"120\"\/><\/a><\/p>\n<p>For example, in order to automatically overlay the above image of a harlequin mask scaled to 160% relative to the detected eyes in the main image:<\/p>\n<p><cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;nodejs&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(\\&quot;woman.jpg\\&quot;, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: \\&quot;HarlequinMask\\&quot;, width: \\&quot;1.6\\&quot;, crop: \\&quot;scale\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;woman.jpg\\&quot;, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: \\&quot;HarlequinMask\\&quot;, width: \\&quot;1.6\\&quot;, crop: \\&quot;scale\\&quot;})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.6).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.6).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;woman.jpg\\&quot; &gt; &lt;Transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;rek_eyes\\&quot; overlay=\\&quot;HarlequinMask\\&quot; width=\\&quot;1.6\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;woman.jpg\\&quot; &gt;\\n\\t&lt;Transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;rek_eyes\\&quot; overlay=\\&quot;HarlequinMask\\&quot; width=\\&quot;1.6\\&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;woman.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.6).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.6).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;woman.jpg\\&quot; &gt; &lt;cld-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;rek_eyes\\&quot; :overlay=\\&quot;HarlequinMask\\&quot; width=\\&quot;1.6\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;woman.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;rek_eyes\\&quot; :overlay=\\&quot;HarlequinMask\\&quot; width=\\&quot;1.6\\&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;woman.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.6).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.6).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;woman.jpg\\&quot; &gt; &lt;cl-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;rek_eyes\\&quot; overlay=\\&quot;HarlequinMask\\&quot; width=\\&quot;1.6\\&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;woman.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;rek_eyes\\&quot; overlay=\\&quot;HarlequinMask\\&quot; width=\\&quot;1.6\\&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;woman.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.6).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.6).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;woman.jpg&#039;, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;HarlequinMask\\&quot;), width: \\&quot;1.6\\&quot;, crop: \\&quot;scale\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;woman.jpg&#039;, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;HarlequinMask\\&quot;), width: \\&quot;1.6\\&quot;, crop: \\&quot;scale\\&quot;}).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryImage(\\&quot;woman.jpg\\&quot;).image(flags=\\&quot;region_relative\\&quot;, gravity=\\&quot;rek_eyes\\&quot;, overlay=\\&quot;HarlequinMask\\&quot;, width=\\&quot;1.6\\&quot;, crop=\\&quot;scale\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;woman.jpg\\&quot;).image(flags=\\&quot;region_relative\\&quot;, gravity=\\&quot;rek_eyes\\&quot;, overlay=\\&quot;HarlequinMask\\&quot;, width=\\&quot;1.6\\&quot;, crop=\\&quot;scale\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new ImageTag(&#039;woman.jpg&#039;))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;HarlequinMask\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(1.6)\\n\\t-&gt;regionRelative()\\n\\t))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t)\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;woman.jpg&#039;))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;HarlequinMask\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(1.6)\\n\\t-&gt;regionRelative()\\n\\t))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\&quot;rek_eyes\\&quot;))\\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;woman.jpg\\&quot;, array(\\&quot;flags\\&quot;=&gt;\\&quot;region_relative\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;rek_eyes\\&quot;, \\&quot;overlay\\&quot;=&gt;\\&quot;HarlequinMask\\&quot;, \\&quot;width\\&quot;=&gt;\\&quot;1.6\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;woman.jpg\\&quot;, array(\\&quot;flags\\&quot;=&gt;\\&quot;region_relative\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;rek_eyes\\&quot;, \\&quot;overlay\\&quot;=&gt;\\&quot;HarlequinMask\\&quot;, \\&quot;width\\&quot;=&gt;\\&quot;1.6\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;rek_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;HarlequinMask\\&quot;)).width(1.6).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;woman.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;rek_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;HarlequinMask\\&quot;)).width(1.6).crop(\\&quot;scale\\&quot;)).imageTag(\\&quot;woman.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;woman.jpg\\&quot;, flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: \\&quot;HarlequinMask\\&quot;, width: 1.6, crop: \\&quot;scale\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;woman.jpg\\&quot;, flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: \\&quot;HarlequinMask\\&quot;, width: 1.6, crop: \\&quot;scale\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Flags(\\&quot;region_relative\\&quot;).Gravity(\\&quot;rek_eyes\\&quot;).Overlay(new Layer().PublicId(\\&quot;HarlequinMask\\&quot;)).Width(1.6).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;woman.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Flags(\\&quot;region_relative\\&quot;).Gravity(\\&quot;rek_eyes\\&quot;).Overlay(new Layer().PublicId(\\&quot;HarlequinMask\\&quot;)).Width(1.6).Crop(\\&quot;scale\\&quot;)).BuildImageTag(\\&quot;woman.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;woman.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;HarlequinMask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.6)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t)\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;woman.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;HarlequinMask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.6)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t)\\n\\t));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setFlags(\\&quot;region_relative\\&quot;).setGravity(\\&quot;rek_eyes\\&quot;).setOverlay(\\&quot;HarlequinMask\\&quot;).setWidth(1.6).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;woman.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setFlags(\\&quot;region_relative\\&quot;).setGravity(\\&quot;rek_eyes\\&quot;).setOverlay(\\&quot;HarlequinMask\\&quot;).setWidth(1.6).setCrop(\\&quot;scale\\&quot;)).generate(\\&quot;woman.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;rek_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;HarlequinMask\\&quot;)).width(1.6).crop(\\&quot;scale\\&quot;)).generate(\\&quot;woman.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;rek_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;HarlequinMask\\&quot;)).width(1.6).crop(\\&quot;scale\\&quot;)).generate(\\&quot;woman.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;woman.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;HarlequinMask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.6)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t)\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;woman.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;HarlequinMask\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.6)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\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;woman.jpg\\&quot;)\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;HarlequinMask\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(1.6F)\\n\\t regionRelative()\\n\\t }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t })\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;woman.jpg\\&quot;)\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;HarlequinMask\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(1.6F)\\n\\t regionRelative()\\n\\t }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\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;woman.jpg\\&quot;, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;HarlequinMask\\&quot;), width: \\&quot;1.6\\&quot;, crop: \\&quot;scale\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;woman.jpg\\&quot;, {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;HarlequinMask\\&quot;), width: \\&quot;1.6\\&quot;, crop: \\&quot;scale\\&quot;})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.6).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;).overlay(\\n  source(\\n    image(\\&quot;HarlequinMask\\&quot;).transformation(\\n      new Transformation().resize(scale().width(1.6).regionRelative())\\n    )\\n  ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/upload\\\/c_scale,fl_region_relative,g_rek_eyes,l_HarlequinMask,w_1.6\\\/woman.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;scale&quot;,&quot;flags&quot;:&quot;region_relative&quot;,&quot;gravity&quot;:&quot;rek_eyes&quot;,&quot;overlay&quot;:&quot;HarlequinMask&quot;,&quot;width&quot;:&quot;1.6&quot;}],&quot;transformation_string&quot;:&quot;c_scale,fl_region_relative,g_rek_eyes,l_HarlequinMask,w_1.6&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;woman.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_scale,fl_region_relative,g_rek_eyes,l_HarlequinMask,w_1.6\/woman.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_scale,fl_region_relative,g_rek_eyes,l_HarlequinMask,w_1.6\/w_300\/woman.jpg\" alt=\"Harlequin masked face\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"300\" height=\"206\"\/><\/a><\/p>\n<p>Heres another example, this time with glasses.<\/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;glasses.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;glasses.jpg\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;glasses.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;glasses.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;glasses.jpg\\&quot; &gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;glasses.jpg\\&quot; &gt;\\n\\n&lt;\\\/Image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;cloudinary-react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue_2&quot;,&quot;framework&quot;:&quot;vue_2&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;glasses.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;glasses.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;glasses.jpg\\&quot; &gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;glasses.jpg\\&quot; &gt;\\n\\n&lt;\\\/cld-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;cloudinary-vue&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular_2&quot;,&quot;framework&quot;:&quot;angular_2&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;glasses.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;glasses.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;glasses.jpg\\&quot; &gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;glasses.jpg\\&quot; &gt;\\n\\n&lt;\\\/cl-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/angular-5.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js_2&quot;,&quot;framework&quot;:&quot;js_2&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;glasses.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;glasses.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;glasses.jpg&#039;).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;glasses.jpg&#039;).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryImage(\\&quot;glasses.jpg\\&quot;).image()&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;glasses.jpg\\&quot;).image()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new ImageTag(&#039;glasses.jpg&#039;));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;glasses.jpg&#039;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;glasses.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;glasses.jpg\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().imageTag(\\&quot;glasses.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().imageTag(\\&quot;glasses.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;glasses.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;glasses.jpg\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.BuildImageTag(\\&quot;glasses.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.BuildImageTag(\\&quot;glasses.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;glasses.jpg&#039;).transformation(Transformation());&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;glasses.jpg&#039;).transformation(Transformation());&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().generate(\\&quot;glasses.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().generate(\\&quot;glasses.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().generate(\\&quot;glasses.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().generate(\\&quot;glasses.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;glasses.jpg&#039;).transformation(Transformation());&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;glasses.jpg&#039;).transformation(Transformation());&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Flutter&quot;,&quot;packageName&quot;:&quot;cloudinary_flutter&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;kotlin&quot;,&quot;framework&quot;:&quot;kotlin&quot;,&quot;language&quot;:&quot;kotlin&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;glasses.jpg\\&quot;) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;glasses.jpg\\&quot;) \\n}.generate()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Kotlin&quot;,&quot;packageName&quot;:&quot;kotlin-url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;jquery&quot;,&quot;framework&quot;:&quot;jquery&quot;,&quot;language&quot;:&quot;jquery&quot;,&quot;rawCodeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;glasses.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;glasses.jpg\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;glasses.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;glasses.jpg\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/upload\\\/glasses.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[],&quot;transformation_string&quot;:&quot;&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;glasses.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\/glasses.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_300\/glasses.jpg\" alt=\"Glasses\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"300\" height=\"106\"\/><\/a><\/p>\n<p>Overlaying the above image scaled to 150% relative to the detected eyes in the main image, which is then presented as a 200 pixel wide round thumbnail centered on 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;woman.jpg\\&quot;, {transformation: [ {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: \\&quot;glasses\\&quot;, width: \\&quot;1.5\\&quot;, crop: \\&quot;scale\\&quot;}, {width: 200, gravity: \\&quot;face\\&quot;, radius: \\&quot;max\\&quot;, crop: \\&quot;thumb\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;woman.jpg\\&quot;, {transformation: [\\n  {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: \\&quot;glasses\\&quot;, width: \\&quot;1.5\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {width: 200, gravity: \\&quot;face\\&quot;, radius: \\&quot;max\\&quot;, crop: \\&quot;thumb\\&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;woman.jpg\\&quot;)\\n  .overlay(\\n    source(\\n      image(\\&quot;glasses\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.5).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n  )\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;)\\n  .overlay(\\n    source(\\n      image(\\&quot;glasses\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.5).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n  )\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max());&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;woman.jpg\\&quot; &gt; &lt;Transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;rek_eyes\\&quot; overlay=\\&quot;glasses\\&quot; width=\\&quot;1.5\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;Transformation width=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; radius=\\&quot;max\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;woman.jpg\\&quot; &gt;\\n\\t&lt;Transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;rek_eyes\\&quot; overlay=\\&quot;glasses\\&quot; width=\\&quot;1.5\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt;\\n\\t&lt;Transformation width=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; radius=\\&quot;max\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n&lt;\\\/Image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;cloudinary-react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue_2&quot;,&quot;framework&quot;:&quot;vue_2&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;)\\n  .overlay(\\n    source(\\n      image(\\&quot;glasses\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.5).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n  )\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;)\\n  .overlay(\\n    source(\\n      image(\\&quot;glasses\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.5).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n  )\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max());&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;woman.jpg\\&quot; &gt; &lt;cld-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;rek_eyes\\&quot; :overlay=\\&quot;glasses\\&quot; width=\\&quot;1.5\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;cld-transformation width=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; radius=\\&quot;max\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;woman.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;rek_eyes\\&quot; :overlay=\\&quot;glasses\\&quot; width=\\&quot;1.5\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation width=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; radius=\\&quot;max\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n&lt;\\\/cld-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;cloudinary-vue&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular_2&quot;,&quot;framework&quot;:&quot;angular_2&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;)\\n  .overlay(\\n    source(\\n      image(\\&quot;glasses\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.5).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n  )\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;)\\n  .overlay(\\n    source(\\n      image(\\&quot;glasses\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.5).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n  )\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max());&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;woman.jpg\\&quot; &gt; &lt;cl-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;rek_eyes\\&quot; overlay=\\&quot;glasses\\&quot; width=\\&quot;1.5\\&quot; crop=\\&quot;scale\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation width=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; radius=\\&quot;max\\&quot; crop=\\&quot;thumb\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;woman.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation flags=\\&quot;region_relative\\&quot; gravity=\\&quot;rek_eyes\\&quot; overlay=\\&quot;glasses\\&quot; width=\\&quot;1.5\\&quot; crop=\\&quot;scale\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation width=\\&quot;200\\&quot; gravity=\\&quot;face\\&quot; radius=\\&quot;max\\&quot; crop=\\&quot;thumb\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n&lt;\\\/cl-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/angular-5.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js_2&quot;,&quot;framework&quot;:&quot;js_2&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;)\\n  .overlay(\\n    source(\\n      image(\\&quot;glasses\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.5).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n  )\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;)\\n  .overlay(\\n    source(\\n      image(\\&quot;glasses\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.5).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n  )\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max());&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;woman.jpg&#039;, {transformation: [ {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;glasses\\&quot;), width: \\&quot;1.5\\&quot;, crop: \\&quot;scale\\&quot;}, {width: 200, gravity: \\&quot;face\\&quot;, radius: \\&quot;max\\&quot;, crop: \\&quot;thumb\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;woman.jpg&#039;, {transformation: [\\n  {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;glasses\\&quot;), width: \\&quot;1.5\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {width: 200, gravity: \\&quot;face\\&quot;, radius: \\&quot;max\\&quot;, crop: \\&quot;thumb\\&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;woman.jpg\\&quot;).image(transformation=[ {&#039;flags&#039;: \\&quot;region_relative\\&quot;, &#039;gravity&#039;: \\&quot;rek_eyes\\&quot;, &#039;overlay&#039;: \\&quot;glasses\\&quot;, &#039;width&#039;: \\&quot;1.5\\&quot;, &#039;crop&#039;: \\&quot;scale\\&quot;}, {&#039;width&#039;: 200, &#039;gravity&#039;: \\&quot;face\\&quot;, &#039;radius&#039;: \\&quot;max\\&quot;, &#039;crop&#039;: \\&quot;thumb\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;woman.jpg\\&quot;).image(transformation=[\\n  {&#039;flags&#039;: \\&quot;region_relative\\&quot;, &#039;gravity&#039;: \\&quot;rek_eyes\\&quot;, &#039;overlay&#039;: \\&quot;glasses\\&quot;, &#039;width&#039;: \\&quot;1.5\\&quot;, &#039;crop&#039;: \\&quot;scale\\&quot;},\\n  {&#039;width&#039;: 200, &#039;gravity&#039;: \\&quot;face\\&quot;, &#039;radius&#039;: \\&quot;max\\&quot;, &#039;crop&#039;: \\&quot;thumb\\&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;woman.jpg&#039;))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;glasses\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(1.5)\\n\\t-&gt;regionRelative()\\n\\t))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t)\\n\\t)\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(200)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t)\\n\\t-&gt;roundCorners(RoundCorners::max());&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;woman.jpg&#039;))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;glasses\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(1.5)\\n\\t-&gt;regionRelative()\\n\\t))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t)\\n\\t)\\n\\t-&gt;resize(Resize::thumbnail()-&gt;width(200)\\n\\t-&gt;gravity(\\n\\tGravity::focusOn(\\n\\tFocusOn::face()))\\n\\t)\\n\\t-&gt;roundCorners(RoundCorners::max());&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;woman.jpg\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;flags\\&quot;=&gt;\\&quot;region_relative\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;rek_eyes\\&quot;, \\&quot;overlay\\&quot;=&gt;\\&quot;glasses\\&quot;, \\&quot;width\\&quot;=&gt;\\&quot;1.5\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;), array(\\&quot;width\\&quot;=&gt;200, \\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;radius\\&quot;=&gt;\\&quot;max\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;woman.jpg\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;flags\\&quot;=&gt;\\&quot;region_relative\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;rek_eyes\\&quot;, \\&quot;overlay\\&quot;=&gt;\\&quot;glasses\\&quot;, \\&quot;width\\&quot;=&gt;\\&quot;1.5\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;),\\n  array(\\&quot;width\\&quot;=&gt;200, \\&quot;gravity\\&quot;=&gt;\\&quot;face\\&quot;, \\&quot;radius\\&quot;=&gt;\\&quot;max\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&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().flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;rek_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;glasses\\&quot;)).width(1.5).crop(\\&quot;scale\\&quot;).chain() .width(200).gravity(\\&quot;face\\&quot;).radius(\\&quot;max\\&quot;).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;woman.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;rek_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;glasses\\&quot;)).width(1.5).crop(\\&quot;scale\\&quot;).chain()\\n  .width(200).gravity(\\&quot;face\\&quot;).radius(\\&quot;max\\&quot;).crop(\\&quot;thumb\\&quot;)).imageTag(\\&quot;woman.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;woman.jpg\\&quot;, transformation: [ {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: \\&quot;glasses\\&quot;, width: 1.5, crop: \\&quot;scale\\&quot;}, {width: 200, gravity: \\&quot;face\\&quot;, radius: \\&quot;max\\&quot;, crop: \\&quot;thumb\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;woman.jpg\\&quot;, transformation: [\\n  {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: \\&quot;glasses\\&quot;, width: 1.5, crop: \\&quot;scale\\&quot;},\\n  {width: 200, gravity: \\&quot;face\\&quot;, radius: \\&quot;max\\&quot;, crop: \\&quot;thumb\\&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().Flags(\\&quot;region_relative\\&quot;).Gravity(\\&quot;rek_eyes\\&quot;).Overlay(new Layer().PublicId(\\&quot;glasses\\&quot;)).Width(1.5).Crop(\\&quot;scale\\&quot;).Chain() .Width(200).Gravity(\\&quot;face\\&quot;).Radius(\\&quot;max\\&quot;).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;woman.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Flags(\\&quot;region_relative\\&quot;).Gravity(\\&quot;rek_eyes\\&quot;).Overlay(new Layer().PublicId(\\&quot;glasses\\&quot;)).Width(1.5).Crop(\\&quot;scale\\&quot;).Chain()\\n  .Width(200).Gravity(\\&quot;face\\&quot;).Radius(\\&quot;max\\&quot;).Crop(\\&quot;thumb\\&quot;)).BuildImageTag(\\&quot;woman.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;woman.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;glasses\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.5)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t)\\n\\t)\\n\\t.resize(Resize.thumbnail().width(200)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.roundCorners(RoundCorners.max()));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;woman.jpg&#039;).transformation(Transformation()\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;glasses\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(1.5)\\n\\t.regionRelative()\\n\\t))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t)\\n\\t)\\n\\t.resize(Resize.thumbnail().width(200)\\n\\t.gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t)\\n\\t.roundCorners(RoundCorners.max()));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setFlags(\\&quot;region_relative\\&quot;).setGravity(\\&quot;rek_eyes\\&quot;).setOverlay(\\&quot;glasses\\&quot;).setWidth(1.5).setCrop(\\&quot;scale\\&quot;).chain() .setWidth(200).setGravity(\\&quot;face\\&quot;).setRadius(\\&quot;max\\&quot;).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;woman.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setFlags(\\&quot;region_relative\\&quot;).setGravity(\\&quot;rek_eyes\\&quot;).setOverlay(\\&quot;glasses\\&quot;).setWidth(1.5).setCrop(\\&quot;scale\\&quot;).chain()\\n  .setWidth(200).setGravity(\\&quot;face\\&quot;).setRadius(\\&quot;max\\&quot;).setCrop(\\&quot;thumb\\&quot;)).generate(\\&quot;woman.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;rek_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;glasses\\&quot;)).width(1.5).crop(\\&quot;scale\\&quot;).chain() .width(200).gravity(\\&quot;face\\&quot;).radius(\\&quot;max\\&quot;).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;woman.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .flags(\\&quot;region_relative\\&quot;).gravity(\\&quot;rek_eyes\\&quot;).overlay(new Layer().publicId(\\&quot;glasses\\&quot;)).width(1.5).crop(\\&quot;scale\\&quot;).chain()\\n  .width(200).gravity(\\&quot;face\\&quot;).radius(\\&quot;max\\&quot;).crop(\\&quot;thumb\\&quot;)).generate(\\&quot;woman.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;woman.jpg&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;c_scale,fl_region_relative,g_rek_eyes,l_glasses,w_1.5\\\/c_thumb,w_200,g_face,r_max\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;woman.jpg&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;c_scale,fl_region_relative,g_rek_eyes,l_glasses,w_1.5\\\/c_thumb,w_200,g_face,r_max\\&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;woman.jpg\\&quot;)\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;glasses\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(1.5F)\\n\\t regionRelative()\\n\\t }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t })\\n\\t })\\n\\t resize(Resize.thumbnail() { width(200)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t })\\n\\t roundCorners(RoundCorners.max()) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;woman.jpg\\&quot;)\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;glasses\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(1.5F)\\n\\t regionRelative()\\n\\t }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.focusOn(\\&quot;rek_eyes\\&quot;))\\n\\t })\\n\\t })\\n\\t resize(Resize.thumbnail() { width(200)\\n\\t gravity(\\n\\tGravity.focusOn(\\n\\tFocusOn.face()))\\n\\t })\\n\\t roundCorners(RoundCorners.max()) \\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;woman.jpg\\&quot;, {transformation: [ {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;glasses\\&quot;), width: \\&quot;1.5\\&quot;, crop: \\&quot;scale\\&quot;}, {width: 200, gravity: \\&quot;face\\&quot;, radius: \\&quot;max\\&quot;, crop: \\&quot;thumb\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;woman.jpg\\&quot;, {transformation: [\\n  {flags: \\&quot;region_relative\\&quot;, gravity: \\&quot;rek_eyes\\&quot;, overlay: new cloudinary.Layer().publicId(\\&quot;glasses\\&quot;), width: \\&quot;1.5\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {width: 200, gravity: \\&quot;face\\&quot;, radius: \\&quot;max\\&quot;, crop: \\&quot;thumb\\&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;woman.jpg\\&quot;)\\n  .overlay(\\n    source(\\n      image(\\&quot;glasses\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.5).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n  )\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max());&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;woman.jpg\\&quot;)\\n  .overlay(\\n    source(\\n      image(\\&quot;glasses\\&quot;).transformation(\\n        new Transformation().resize(scale().width(1.5).regionRelative())\\n      )\\n    ).position(new Position().gravity(focusOn(\\&quot;rek_eyes\\&quot;)))\\n  )\\n  .resize(\\n    thumbnail()\\n      .width(200)\\n      .gravity(focusOn(face()))\\n  )\\n  .roundCorners(max());&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/upload\\\/c_scale,fl_region_relative,g_rek_eyes,l_glasses,w_1.5\\\/c_thumb,w_200,g_face,r_max\\\/woman.jpg&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;crop_mode&quot;:&quot;scale&quot;,&quot;flags&quot;:&quot;region_relative&quot;,&quot;gravity&quot;:&quot;rek_eyes&quot;,&quot;overlay&quot;:&quot;glasses&quot;,&quot;width&quot;:&quot;1.5&quot;},{&quot;crop_mode&quot;:&quot;thumb&quot;,&quot;width&quot;:&quot;200&quot;,&quot;gravity&quot;:&quot;face&quot;,&quot;radius&quot;:&quot;max&quot;}],&quot;transformation_string&quot;:&quot;c_scale,fl_region_relative,g_rek_eyes,l_glasses,w_1.5\\\/c_thumb,w_200,g_face,r_max&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;woman.jpg&quot;,&quot;extension&quot;:&quot;jpg&quot;,&quot;format&quot;:&quot;jpg&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_scale,fl_region_relative,g_rek_eyes,l_glasses,w_1.5\/c_thumb,w_200,g_face,r_max\/woman.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/c_scale,fl_region_relative,g_rek_eyes,l_glasses,w_1.5\/c_thumb,w_200,g_face,r_max\/woman.jpg\" alt=\"Glasses overlayed on eyes\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"200\" height=\"138\"\/><\/a><\/p>\n<h2>Summary<\/h2>\n<p>The ReKognition add-on is utilized to automatically extract detailed face attributes from your images, and enables advanced image transformation and categorization based on the detected facial data, with relative scaling and rotation of overlays achieved automatically.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary\/image\/upload\/w_500\/rekognition_face_post_screenshot.png\" alt=\"ReKognition detect face attributes add-on\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"500\" height=\"207\"\/><\/p>\n<p>The <a href=\"https:\/\/cloudinary.com\/addons#rekognition_face\">ReKognition add-on<\/a> is available to all our free and paid plans. If you don\u2019t have a Cloudinary account, you are welcome to <a href=\"https:\/\/cloudinary.com\/users\/register_free\">sign up to our free account<\/a> and try it out.<\/p>\n<p><strong>Update &#8211; December 2015:<\/strong> <em>The add-on described in this post is no longer available since ReKognition terminated their services. However, all features described here are still available via a different and even better add-on: <a href=\"https:\/\/cloudinary.com\/documentation\/advanced_facial_attributes_detection_addon\">Advanced Facial Attributes Detection\n<\/a><\/em><\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":24083,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[91,92,165,176,183,214,229,257],"class_list":["post-21279","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-django","tag-dotnet","tag-image-transformation","tag-java","tag-jquery","tag-node","tag-php","tag-ruby-on-rails"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Advanced Facial Attributes Detection for Image Transformation<\/title>\n<meta name=\"description\" content=\"Learn to automatically extract detailed facial attributes from images, and to enables advanced image transformation and categorization based on the detected data\" \/>\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\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Advanced Facial Attributes Detection for Image Transformation\" \/>\n<meta property=\"og:description\" content=\"Learn to automatically extract detailed facial attributes from images, and to enables advanced image transformation and categorization based on the detected data\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-04-02T14:52:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-04T23:01:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1650586083\/86_advanced-facial-attributes_detection\/86_advanced-facial-attributes_detection-png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Advanced Facial Attributes Detection for Image Transformation\",\"datePublished\":\"2015-04-02T14:52:24+00:00\",\"dateModified\":\"2024-06-04T23:01:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection\"},\"wordCount\":7,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1650586083\/86_advanced-facial-attributes_detection\/86_advanced-facial-attributes_detection.png?_i=AA\",\"keywords\":[\"Django\",\"DotNet\",\"Image Transformation\",\"Java\",\"jQuery\",\"Node\",\"PHP\",\"Ruby on Rails\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2015\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection\",\"url\":\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection\",\"name\":\"Advanced Facial Attributes Detection for Image Transformation\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1650586083\/86_advanced-facial-attributes_detection\/86_advanced-facial-attributes_detection.png?_i=AA\",\"datePublished\":\"2015-04-02T14:52:24+00:00\",\"dateModified\":\"2024-06-04T23:01:05+00:00\",\"description\":\"Learn to automatically extract detailed facial attributes from images, and to enables advanced image transformation and categorization based on the detected data\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1650586083\/86_advanced-facial-attributes_detection\/86_advanced-facial-attributes_detection.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1650586083\/86_advanced-facial-attributes_detection\/86_advanced-facial-attributes_detection.png?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Advanced Facial Attributes Detection for Image Transformation\"}]},{\"@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":"Advanced Facial Attributes Detection for Image Transformation","description":"Learn to automatically extract detailed facial attributes from images, and to enables advanced image transformation and categorization based on the detected data","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\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection","og_locale":"en_US","og_type":"article","og_title":"Advanced Facial Attributes Detection for Image Transformation","og_description":"Learn to automatically extract detailed facial attributes from images, and to enables advanced image transformation and categorization based on the detected data","og_url":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection","og_site_name":"Cloudinary Blog","article_published_time":"2015-04-02T14:52:24+00:00","article_modified_time":"2024-06-04T23:01:05+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1650586083\/86_advanced-facial-attributes_detection\/86_advanced-facial-attributes_detection-png?_i=AA","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection"},"author":{"name":"","@id":""},"headline":"Advanced Facial Attributes Detection for Image Transformation","datePublished":"2015-04-02T14:52:24+00:00","dateModified":"2024-06-04T23:01:05+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection"},"wordCount":7,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1650586083\/86_advanced-facial-attributes_detection\/86_advanced-facial-attributes_detection.png?_i=AA","keywords":["Django","DotNet","Image Transformation","Java","jQuery","Node","PHP","Ruby on Rails"],"inLanguage":"en-US","copyrightYear":"2015","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection","url":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection","name":"Advanced Facial Attributes Detection for Image Transformation","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1650586083\/86_advanced-facial-attributes_detection\/86_advanced-facial-attributes_detection.png?_i=AA","datePublished":"2015-04-02T14:52:24+00:00","dateModified":"2024-06-04T23:01:05+00:00","description":"Learn to automatically extract detailed facial attributes from images, and to enables advanced image transformation and categorization based on the detected data","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1650586083\/86_advanced-facial-attributes_detection\/86_advanced-facial-attributes_detection.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1650586083\/86_advanced-facial-attributes_detection\/86_advanced-facial-attributes_detection.png?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/powerful_image_manipulation_and_categorization_with_facial_attribute_detection#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Advanced Facial Attributes Detection for Image Transformation"}]},{"@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\/v1650586083\/86_advanced-facial-attributes_detection\/86_advanced-facial-attributes_detection.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21279","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=21279"}],"version-history":[{"count":5,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21279\/revisions"}],"predecessor-version":[{"id":34379,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21279\/revisions\/34379"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/24083"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=21279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=21279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=21279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}