{"id":21863,"date":"2020-08-23T10:35:00","date_gmt":"2020-08-23T10:35:00","guid":{"rendered":"http:\/\/how_to_automatically_and_professionally_remove_photo_backgrounds"},"modified":"2025-05-03T15:31:45","modified_gmt":"2025-05-03T22:31:45","slug":"how_to_automatically_and_professionally_remove_photo_backgrounds","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds","title":{"rendered":"How to Automatically Remove Photo Backgrounds in Seconds With AI"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p>These days, e-commerce websites are trending clean and sleek, almost always spotlighting high-quality product photos with a flat-white, solid-color, or transparent background. Many practical and well-validated reasons support this choice, making it clear that this is no passing fad. This graphic illustrates a few of them:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cloudinary-res.cloudinary.com\/image\/upload\/w_700,c_fill,f_auto,q_auto,dpr_2.0\/docs\/remove_bg\/background_removal_infographic2.png\" alt=\"Infographic: Why Remove Photo Backgrounds?\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"1400\" height=\"693\"\/><\/p>\n<p>How do website or app developers deliver hundreds or thousands of solid- or transparent-background images, including user-generated content? Getting someone to <a href=\"https:\/\/cloudinary.com\/blog\/image_editing_basics_and_a_tutorial_for_automation_with_ai\">manually edit<\/a> them with an editing tool definitely doesn\u2019t scale.<\/p>\n<p><a href=\"https:\/\/cloudinary.com\">Cloudinary<\/a> has the solution in its <strong>AI Background-Removal Add-On<\/strong>.  The add-on\u2019s deep-learning and artificial-intelligence algorithms identify the primary subject in each photo\u2019s foreground and then accurately remove its background in mere seconds.<\/p>\n<p>Moments after you upload your photos, \u2026<\/p>\n<center>\n<table width=\"70%\" cellspacing=\"10\" >\n  <tr align=\"center\">\n   <td style=\"padding:0 8px 0 10px;\">\n        <strong>These . . .<\/strong><p\/>\n   <\/td>\n   <td style=\"padding:0 8px 0 10px;\">\n         <strong>Become These!<\/strong><p\/>\n   <\/td>\n  <\/tr>\n  <tr align=\"center\">\n   <td style=\"padding:0 8px 0 8px;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/q_auto\/docs\/rmv_bgd\/dog_bw_beach_orig.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_250,q_auto\/docs\/rmv_bgd\/dog_bw_beach_orig.jpg\"  title=\"Dog on Sand (Original)\" alt=\"Dog on Sand (Original)\"><\/a><p\/>\n   <\/td>\n   <td style=\"padding:0 8px 0 8px;\"><a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/q_auto\/docs\/rmv_bgd\/dog_bw_beach.png\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_250,f_auto,q_auto\/u_docs:transparent_grid,w_250,h_205,c_crop\/docs\/rmv_bgd\/dog_bw_beach.png\"  title=\"Dog on Sand (No Background)\" alt=\"Dog on Sand (No Background)\"><\/a><p\/>\n   <\/td>\n  <\/tr>\n  <tr align=\"center\">\n   <td style=\"padding:0 8px 0 8px;\"><a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/q_auto\/docs\/rmv_bgd\/baseball_orig.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_250,h_167,c_fill,g_south,f_auto,q_auto\/docs\/rmv_bgd\/baseball_orig.jpg\"  title=\"Baseball Player (Original)\" alt=\"Baseball Player (Original)\"><\/a><p\/>\n   <\/td>\n   <\/td>\n   <td style=\"padding:0 8px 0 8px;\"><a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/q_auto\/docs\/rmv_bgd\/baseball.png\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_250,f_auto,q_auto\/u_docs:transparent_grid,w_250,h_167,c_crop,g_south\/docs\/rmv_bgd\/baseball.png\"  title=\"Baseball Player (No Background)\" alt=\"Baseball Player (No Background)\"><\/a><p\/>\n   <\/td>\n  <\/tr>\n<\/table>\n<\/center>\n<h2>Transparent Backgrounds Are Just a Parameter Away<\/h2>\n<p>Cloudinary is a robust media-management platform that leverages automation and deep-learning algorithms to simplify and accelerate workflows for website and app developers, from bulk uploads of raw photos to on-the-fly transformations for creating multiple media variants, optimizations, and responsive delivery to all devices.<\/p>\n<p>To apply the AI Background Removal Add-On to images during or after uploading them to your Cloudinary account, add the <code>background_removal<\/code> parameter set to <code>cloudinary_ai<\/code> in your <code>upload<\/code> or <code>update<\/code> command. When triggered in the method call, the add-on analyzes the image and then replaces the originally uploaded image with a transparent PNG containing only the foreground image. Cloudinary backs up the original for later retrieval, if required.For example, to have Cloudinary replace the the baseball <a href=\"https:\/\/cloudinary.com\/tools\/compress-jpg\">JPG<\/a> image above with a transparent PNG, you could run the following upload command:<\/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;baseball.jpg\\&quot;,\\n  :public_id =&gt; \\&quot;baseball_no_bg\\&quot;,\\n  :background_removal =&gt; &#039;cloudinary_ai&#039;,\\n  :notification_url =&gt; \\&quot;https:\\\/\\\/mysite.example.com\\\/hooks\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;Cloudinary::Uploader.upload(\\&quot;baseball.jpg\\&quot;,\\n  :public_id =&gt; \\&quot;baseball_no_bg\\&quot;,\\n  :background_removal =&gt; &#039;cloudinary_ai&#039;,\\n  :notification_url =&gt; \\&quot;https:\\\/\\\/mysite.example.com\\\/hooks\\&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;baseball.jpg\\&quot;, \\n  array(\\n    \\&quot;public_id\\&quot; =&gt; \\&quot;baseball_no_bg\\&quot;,\\n    \\&quot;background_removal\\&quot; =&gt; \\&quot;cloudinary_ai\\&quot;,\\n    \\&quot;notification_url\\&quot; =&gt; \\&quot;https:\\\/\\\/mysite.example.com\\\/hooks\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::upload(\\&quot;baseball.jpg\\&quot;, \\n  array(\\n    \\&quot;public_id\\&quot; =&gt; \\&quot;baseball_no_bg\\&quot;,\\n    \\&quot;background_removal\\&quot; =&gt; \\&quot;cloudinary_ai\\&quot;,\\n    \\&quot;notification_url\\&quot; =&gt; \\&quot;https:\\\/\\\/mysite.example.com\\\/hooks\\&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;baseball.jpg\\&quot;,\\n  public_id = \\&quot;baseball_no_bg\\&quot;,\\n  background_removal = \\&quot;cloudinary_ai\\&quot;,\\n  notification_url = \\&quot;https:\\\/\\\/mysite.example.com\\\/hooks\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;baseball.jpg\\&quot;,\\n  public_id = \\&quot;baseball_no_bg\\&quot;,\\n  background_removal = \\&quot;cloudinary_ai\\&quot;,\\n  notification_url = \\&quot;https:\\\/\\\/mysite.example.com\\\/hooks\\&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.v2.uploader.upload(\\&quot;baseball.jpg\\&quot;, \\n  { public_id: \\&quot;baseball_no_bg\\&quot;,\\n    background_removal: \\&quot;cloudinary_ai\\&quot;,\\n    notification_url: \\&quot;https:\\\/\\\/mysite.example.com\\\/hooks\\&quot; }),\\n  function(error, result){console.log(result);});&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.v2.uploader.upload(\\&quot;baseball.jpg\\&quot;, \\n  { public_id: \\&quot;baseball_no_bg\\&quot;,\\n    background_removal: \\&quot;cloudinary_ai\\&quot;,\\n    notification_url: \\&quot;https:\\\/\\\/mysite.example.com\\\/hooks\\&quot; }),\\n  function(error, result){console.log(result);});&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;baseball.jpg\\&quot;, \\n  ObjectUtils.asMap(\\n    \\&quot;public_id\\&quot;, \\&quot;baseball_no_bg\\&quot;,\\n    \\&quot;background_removal\\&quot;, \\&quot;cloudinary_ai\\&quot;,\\n    \\&quot;notification_url\\&quot;, \\&quot;https:\\\/\\\/mysite.example.com\\\/hooks\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader().upload(\\&quot;baseball.jpg\\&quot;, \\n  ObjectUtils.asMap(\\n    \\&quot;public_id\\&quot;, \\&quot;baseball_no_bg\\&quot;,\\n    \\&quot;background_removal\\&quot;, \\&quot;cloudinary_ai\\&quot;,\\n    \\&quot;notification_url\\&quot;, \\&quot;https:\\\/\\\/mysite.example.com\\\/hooks\\&quot;));&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;var uploadParams = new ImageUploadParams(){\\n  File = new FileDescription(@\\&quot;baseball.jpg\\&quot;),\\n  PublicId = \\&quot;baseball_no_bg\\&quot;,\\n  BackgroundRemoval = \\&quot;cloudinary_ai\\&quot;,\\n  NotificationUrl = \\&quot;https:\\\/\\\/mysite.example.com\\\/hooks\\&quot;};\\nvar uploadResult = cloudinary.Upload(uploadParams);&quot;,&quot;codeSnippet&quot;:&quot;var uploadParams = new ImageUploadParams(){\\n  File = new FileDescription(@\\&quot;baseball.jpg\\&quot;),\\n  PublicId = \\&quot;baseball_no_bg\\&quot;,\\n  BackgroundRemoval = \\&quot;cloudinary_ai\\&quot;,\\n  NotificationUrl = \\&quot;https:\\\/\\\/mysite.example.com\\\/hooks\\&quot;};\\nvar uploadResult = cloudinary.Upload(uploadParams);&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>Even though <a href=\"https:\/\/cloudinary.com\/background-remover\">background removal<\/a> takes only a few seconds, if you plan to deliver the transparent image on your site or app immediately after upload, it\u2019s a good idea to include the <code>notification_url<\/code> parameter in your <code>upload<\/code> or <code>upload<\/code> command, which activates a webhook that receives the removal status.  You can then check if removal is still in progress and, if so, you might want to display a placeholder image or an in-progress animation until the process is complete.<\/p>\n<h2>We Only Make It Look Simple<\/h2>\n<p>Segmenting objects from images is a fundamental and well-studied challenge in the computer industry. Nowadays, neural networks are the \u201csecret sauce\u201d behind many <a href=\"https:\/\/cloudinary.com\/glossary\/image-segmentation\">segmentation<\/a> tasks that enable  state-of-the-art functionality for various applications, such as autonomous driving, medical analysis, and industrial planning.<\/p>\n<p>As shown above, erasing image backgrounds with Cloudinary\u2019s add-on is simple for the developers who use it.. Behind the scenes, however, the Cloudinary engine must perform these three complex tasks::<\/p>\n<ol>\n<li>\n<p>Identify the salient objects in the image to determine which objects to classify as <strong>foreground<\/strong> according to the context and scene <a href=\"https:\/\/cloudinary.com\/glossary\/compositing\">composition<\/a>.<\/p>\n<\/li>\n<li>\n<p>Segment the salient objects. Most neutral networks today produce only coarse maps through standard segmentation techniques. For images slated for production, the <strong>segmentation maps<\/strong> of foreground versus background pixels must be near-perfect to achieve seamless background removal, e.g., proper segmentation of fur and hair requires meticulous processing.<\/p>\n<p>Currently, no large <strong>public<\/strong> dataset exists for accurate background removal, rendering it all the more difficult to acquire the quantity of media assets necessary for training neutral networks.<\/p>\n<\/li>\n<li>\n<p>Separate the foreground as an alpha layer.<\/p>\n<p>While addressing those challenges, we at Cloudinary also focused on finding ways to <strong>optimize<\/strong> our algorithm to deliver the high performance our customers expect; that means processing images of all sizes at scale.<\/p>\n<\/li>\n<\/ol>\n<h2>Optimal Results Are Paramount<\/h2>\n<p>When you prepare the delivery URLs for the resulting transparent PNGs, you might want to do one or both of the following:<\/p>\n<ul>\n<li>\n<p>Add a solid or neutral background to the images  and then optimize the updated images using Cloudinary\u2019s <a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations#automatic_format_selection\">auto\u2011format\u00a0(<code>f_auto<\/code>)<\/a> and  <a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations#automatic_quality_and_encoding_settings\">auto-quality (<code>q_auto<\/code>)<\/a> parameters to reduce file sizes with no loss in visual quality.<\/p>\n<\/li>\n<li>\n<p>Eliminate unnecessary white space in the transparent images, which still retain the original dimensions, and then center them within the updated dimensions To do that, just add the <a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations#automatic_cropping\">auto-cropping<\/a> parameter, which tells Cloudinary to identify the visible items in the images and then resize and crop them around these foreground objects to the size and aspect ratio you request.<\/p>\n<\/li>\n<\/ul>\n<p>For example, the Background Removal Add-On returns this cute stuffed sheep without the table and wall in the background but with a lot of redundant white space on the right. Also, this transparent PNG boasts a hefty weight of slightly over 1 MB.<\/p>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<div style=\"text-align:center;\">\n<span style=\"display:inline-block;vertical-align:top;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/q_auto\/docs\/rmv_bgd\/stuffed_orig.jpg\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_250,q_auto\/docs\/rmv_bgd\/stuffed_orig.jpg\" alt=\"Stuffed Sheep (Original)\" title=\"Stuffed Sheep (Original)\" style=\"margin-right: 30px;display:block;\" \/><\/a>\n<\/span>\n<span style=\"display:inline-block;vertical-align:top;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/q_auto\/docs\/rmv_bgd\/stuffed.png\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_250,q_auto\/u_docs:transparent_grid,w_250,h_167,c_crop\/docs\/rmv_bgd\/stuffed.png\" alt=\"Stuffed Sheep With No Background\" title=\"Stuffed Sheep With No Background\" style=\"margin-right: 30px;display:block;\" \/><\/a>\n<\/span>\n<\/div>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<p>How about transforming the image further in the following ways?<\/p>\n<ol>\n<li>Convert the image to a square JPG with a white background.<\/li>\n<li>Optimize the image with <code>f_auto<\/code> and <code>q_auto<\/code>.<\/li>\n<li>Add the <a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations#selecting_the_auto_cropping_algorithm\"><code>g_auto:subject<\/code><\/a> parameter to ensure that, no matter the aspect ratio, Cloudinary automatically selects the location for the cropping based on the main\u2014in this case, the only\u2014subject in the image.<\/li>\n<li>Add a thin gray border.<\/li>\n<\/ol>\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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, {transformation: [ {quality: \\&quot;auto\\&quot;, gravity: \\&quot;auto:subject\\&quot;, height: 1280, aspect_ratio: \\&quot;1\\&quot;, background: \\&quot;white\\&quot;, crop: \\&quot;thumb\\&quot;}, {border: \\&quot;1px_solid_gray\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, {transformation: [\\n  {quality: \\&quot;auto\\&quot;, gravity: \\&quot;auto:subject\\&quot;, height: 1280, aspect_ratio: \\&quot;1\\&quot;, background: \\&quot;white\\&quot;, crop: \\&quot;thumb\\&quot;},\\n  {border: \\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .height(1280)\\n      .aspectRatio(\\&quot;1.0\\&quot;)\\n      .gravity(autoGravity().autoFocus(focusOn(\\&quot;subject\\&quot;)))\\n  )\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .height(1280)\\n      .aspectRatio(\\&quot;1.0\\&quot;)\\n      .gravity(autoGravity().autoFocus(focusOn(\\&quot;subject\\&quot;)))\\n  )\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot; &gt; &lt;Transformation quality=\\&quot;auto\\&quot; gravity=\\&quot;auto:subject\\&quot; height=\\&quot;1280\\&quot; aspectRatio=\\&quot;1\\&quot; background=\\&quot;white\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;Transformation border=\\&quot;1px_solid_gray\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot; &gt;\\n\\t&lt;Transformation quality=\\&quot;auto\\&quot; gravity=\\&quot;auto:subject\\&quot; height=\\&quot;1280\\&quot; aspectRatio=\\&quot;1\\&quot; background=\\&quot;white\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n\\t&lt;Transformation border=\\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .height(1280)\\n      .aspectRatio(\\&quot;1.0\\&quot;)\\n      .gravity(autoGravity().autoFocus(focusOn(\\&quot;subject\\&quot;)))\\n  )\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .height(1280)\\n      .aspectRatio(\\&quot;1.0\\&quot;)\\n      .gravity(autoGravity().autoFocus(focusOn(\\&quot;subject\\&quot;)))\\n  )\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot; &gt; &lt;cld-transformation quality=\\&quot;auto\\&quot; gravity=\\&quot;auto:subject\\&quot; height=\\&quot;1280\\&quot; aspect-ratio=\\&quot;1\\&quot; background=\\&quot;white\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt; &lt;cld-transformation border=\\&quot;1px_solid_gray\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation quality=\\&quot;auto\\&quot; gravity=\\&quot;auto:subject\\&quot; height=\\&quot;1280\\&quot; aspect-ratio=\\&quot;1\\&quot; background=\\&quot;white\\&quot; crop=\\&quot;thumb\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation border=\\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .height(1280)\\n      .aspectRatio(\\&quot;1.0\\&quot;)\\n      .gravity(autoGravity().autoFocus(focusOn(\\&quot;subject\\&quot;)))\\n  )\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .height(1280)\\n      .aspectRatio(\\&quot;1.0\\&quot;)\\n      .gravity(autoGravity().autoFocus(focusOn(\\&quot;subject\\&quot;)))\\n  )\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot; &gt; &lt;cl-transformation quality=\\&quot;auto\\&quot; gravity=\\&quot;auto:subject\\&quot; height=\\&quot;1280\\&quot; aspect-ratio=\\&quot;1\\&quot; background=\\&quot;white\\&quot; crop=\\&quot;thumb\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation border=\\&quot;1px_solid_gray\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation quality=\\&quot;auto\\&quot; gravity=\\&quot;auto:subject\\&quot; height=\\&quot;1280\\&quot; aspect-ratio=\\&quot;1\\&quot; background=\\&quot;white\\&quot; crop=\\&quot;thumb\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation border=\\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .height(1280)\\n      .aspectRatio(\\&quot;1.0\\&quot;)\\n      .gravity(autoGravity().autoFocus(focusOn(\\&quot;subject\\&quot;)))\\n  )\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .height(1280)\\n      .aspectRatio(\\&quot;1.0\\&quot;)\\n      .gravity(autoGravity().autoFocus(focusOn(\\&quot;subject\\&quot;)))\\n  )\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;, {transformation: [ {quality: \\&quot;auto\\&quot;, gravity: \\&quot;auto:subject\\&quot;, height: 1280, aspectRatio: \\&quot;1\\&quot;, background: \\&quot;white\\&quot;, crop: \\&quot;thumb\\&quot;}, {border: \\&quot;1px_solid_gray\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;, {transformation: [\\n  {quality: \\&quot;auto\\&quot;, gravity: \\&quot;auto:subject\\&quot;, height: 1280, aspectRatio: \\&quot;1\\&quot;, background: \\&quot;white\\&quot;, crop: \\&quot;thumb\\&quot;},\\n  {border: \\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;).image(transformation=[ {&#039;quality&#039;: \\&quot;auto\\&quot;, &#039;gravity&#039;: \\&quot;auto:subject\\&quot;, &#039;height&#039;: 1280, &#039;aspect_ratio&#039;: \\&quot;1\\&quot;, &#039;background&#039;: \\&quot;white\\&quot;, &#039;crop&#039;: \\&quot;thumb\\&quot;}, {&#039;border&#039;: \\&quot;1px_solid_gray\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;).image(transformation=[\\n  {&#039;quality&#039;: \\&quot;auto\\&quot;, &#039;gravity&#039;: \\&quot;auto:subject\\&quot;, &#039;height&#039;: 1280, &#039;aspect_ratio&#039;: \\&quot;1\\&quot;, &#039;background&#039;: \\&quot;white\\&quot;, &#039;crop&#039;: \\&quot;thumb\\&quot;},\\n  {&#039;border&#039;: \\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;height(1280)\\n-&gt;aspectRatio(1.0)\\n\\t-&gt;gravity(\\n\\tGravity::autoGravity()\\n\\t-&gt;autoFocus(\\n\\tAutoFocus::focusOn(\\&quot;subject\\&quot;))\\n\\t)\\n\\t)\\n\\t-&gt;backgroundColor(Color::WHITE)\\n\\t-&gt;delivery(Delivery::format(\\n\\tFormat::auto()))\\n\\t-&gt;delivery(Delivery::quality(\\n\\tQuality::auto()))\\n\\t-&gt;border(Border::solid(1,Color::GRAY));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;))\\n\\t-&gt;resize(Resize::thumbnail()-&gt;height(1280)\\n-&gt;aspectRatio(1.0)\\n\\t-&gt;gravity(\\n\\tGravity::autoGravity()\\n\\t-&gt;autoFocus(\\n\\tAutoFocus::focusOn(\\&quot;subject\\&quot;))\\n\\t)\\n\\t)\\n\\t-&gt;backgroundColor(Color::WHITE)\\n\\t-&gt;delivery(Delivery::format(\\n\\tFormat::auto()))\\n\\t-&gt;delivery(Delivery::quality(\\n\\tQuality::auto()))\\n\\t-&gt;border(Border::solid(1,Color::GRAY));&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;quality\\&quot;=&gt;\\&quot;auto\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;auto:subject\\&quot;, \\&quot;height\\&quot;=&gt;1280, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1\\&quot;, \\&quot;background\\&quot;=&gt;\\&quot;white\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;), array(\\&quot;border\\&quot;=&gt;\\&quot;1px_solid_gray\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;quality\\&quot;=&gt;\\&quot;auto\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;auto:subject\\&quot;, \\&quot;height\\&quot;=&gt;1280, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1\\&quot;, \\&quot;background\\&quot;=&gt;\\&quot;white\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;thumb\\&quot;),\\n  array(\\&quot;border\\&quot;=&gt;\\&quot;1px_solid_gray\\&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().quality(\\&quot;auto\\&quot;).gravity(\\&quot;auto:subject\\&quot;).height(1280).aspectRatio(\\&quot;1\\&quot;).background(\\&quot;white\\&quot;).crop(\\&quot;thumb\\&quot;).chain() .border(\\&quot;1px_solid_gray\\&quot;)).imageTag(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .quality(\\&quot;auto\\&quot;).gravity(\\&quot;auto:subject\\&quot;).height(1280).aspectRatio(\\&quot;1\\&quot;).background(\\&quot;white\\&quot;).crop(\\&quot;thumb\\&quot;).chain()\\n  .border(\\&quot;1px_solid_gray\\&quot;)).imageTag(\\&quot;docs\\\/rmv_bgd\\\/stuffed.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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, transformation: [ {quality: \\&quot;auto\\&quot;, gravity: \\&quot;auto:subject\\&quot;, height: 1280, aspect_ratio: \\&quot;1\\&quot;, background: \\&quot;white\\&quot;, crop: \\&quot;thumb\\&quot;}, {border: \\&quot;1px_solid_gray\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, transformation: [\\n  {quality: \\&quot;auto\\&quot;, gravity: \\&quot;auto:subject\\&quot;, height: 1280, aspect_ratio: \\&quot;1\\&quot;, background: \\&quot;white\\&quot;, crop: \\&quot;thumb\\&quot;},\\n  {border: \\&quot;1px_solid_gray\\&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().Quality(\\&quot;auto\\&quot;).Gravity(\\&quot;auto:subject\\&quot;).Height(1280).AspectRatio(\\&quot;1\\&quot;).Background(\\&quot;white\\&quot;).Crop(\\&quot;thumb\\&quot;).Chain() .Border(\\&quot;1px_solid_gray\\&quot;)).BuildImageTag(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Quality(\\&quot;auto\\&quot;).Gravity(\\&quot;auto:subject\\&quot;).Height(1280).AspectRatio(\\&quot;1\\&quot;).Background(\\&quot;white\\&quot;).Crop(\\&quot;thumb\\&quot;).Chain()\\n  .Border(\\&quot;1px_solid_gray\\&quot;)).BuildImageTag(\\&quot;docs\\\/rmv_bgd\\\/stuffed.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;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().height(1280)\\n.aspectRatio(&#039;1.0&#039;)\\n\\t.gravity(\\n\\tGravity.autoGravity()\\n\\t.autoFocus(\\n\\tAutoFocus.focusOn(\\&quot;subject\\&quot;))\\n\\t)\\n\\t)\\n\\t.backgroundColor(Color.WHITE)\\n\\t.delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.border(Border.solid(1,Color.GRAY)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().height(1280)\\n.aspectRatio(&#039;1.0&#039;)\\n\\t.gravity(\\n\\tGravity.autoGravity()\\n\\t.autoFocus(\\n\\tAutoFocus.focusOn(\\&quot;subject\\&quot;))\\n\\t)\\n\\t)\\n\\t.backgroundColor(Color.WHITE)\\n\\t.delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.border(Border.solid(1,Color.GRAY)));&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().setQuality(\\&quot;auto\\&quot;).setGravity(\\&quot;auto:subject\\&quot;).setHeight(1280).setAspectRatio(\\&quot;1\\&quot;).setBackground(\\&quot;white\\&quot;).setCrop(\\&quot;thumb\\&quot;).chain() .setBorder(\\&quot;1px_solid_gray\\&quot;)).generate(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setQuality(\\&quot;auto\\&quot;).setGravity(\\&quot;auto:subject\\&quot;).setHeight(1280).setAspectRatio(\\&quot;1\\&quot;).setBackground(\\&quot;white\\&quot;).setCrop(\\&quot;thumb\\&quot;).chain()\\n  .setBorder(\\&quot;1px_solid_gray\\&quot;)).generate(\\&quot;docs\\\/rmv_bgd\\\/stuffed.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().quality(\\&quot;auto\\&quot;).gravity(\\&quot;auto:subject\\&quot;).height(1280).aspectRatio(\\&quot;1\\&quot;).background(\\&quot;white\\&quot;).crop(\\&quot;thumb\\&quot;).chain() .border(\\&quot;1px_solid_gray\\&quot;)).generate(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .quality(\\&quot;auto\\&quot;).gravity(\\&quot;auto:subject\\&quot;).height(1280).aspectRatio(\\&quot;1\\&quot;).background(\\&quot;white\\&quot;).crop(\\&quot;thumb\\&quot;).chain()\\n  .border(\\&quot;1px_solid_gray\\&quot;)).generate(\\&quot;docs\\\/rmv_bgd\\\/stuffed.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;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().height(1280)\\n.aspectRatio(&#039;1.0&#039;)\\n\\t.gravity(\\n\\tGravity.autoGravity()\\n\\t.autoFocus(\\n\\tAutoFocus.focusOn(\\&quot;subject\\&quot;))\\n\\t)\\n\\t)\\n\\t.backgroundColor(Color.WHITE)\\n\\t.delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.border(Border.solid(1,Color.GRAY)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;).transformation(Transformation()\\n\\t.resize(Resize.thumbnail().height(1280)\\n.aspectRatio(&#039;1.0&#039;)\\n\\t.gravity(\\n\\tGravity.autoGravity()\\n\\t.autoFocus(\\n\\tAutoFocus.focusOn(\\&quot;subject\\&quot;))\\n\\t)\\n\\t)\\n\\t.backgroundColor(Color.WHITE)\\n\\t.delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.border(Border.solid(1,Color.GRAY)));&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { height(1280)\\n aspectRatio(1.0F)\\n\\t gravity(\\n\\tGravity.autoGravity() {\\n\\t autoFocus(\\n\\tAutoFocus.focusOn(\\&quot;subject\\&quot;))\\n\\t })\\n\\t })\\n\\t backgroundColor(Color.WHITE)\\n\\t delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t border(Border.solid(1,Color.GRAY)) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n\\t resize(Resize.thumbnail() { height(1280)\\n aspectRatio(1.0F)\\n\\t gravity(\\n\\tGravity.autoGravity() {\\n\\t autoFocus(\\n\\tAutoFocus.focusOn(\\&quot;subject\\&quot;))\\n\\t })\\n\\t })\\n\\t backgroundColor(Color.WHITE)\\n\\t delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t border(Border.solid(1,Color.GRAY)) \\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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, {transformation: [ {quality: \\&quot;auto\\&quot;, gravity: \\&quot;auto:subject\\&quot;, height: 1280, aspect_ratio: \\&quot;1\\&quot;, background: \\&quot;white\\&quot;, crop: \\&quot;thumb\\&quot;}, {border: \\&quot;1px_solid_gray\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, {transformation: [\\n  {quality: \\&quot;auto\\&quot;, gravity: \\&quot;auto:subject\\&quot;, height: 1280, aspect_ratio: \\&quot;1\\&quot;, background: \\&quot;white\\&quot;, crop: \\&quot;thumb\\&quot;},\\n  {border: \\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .height(1280)\\n      .aspectRatio(\\&quot;1.0\\&quot;)\\n      .gravity(autoGravity().autoFocus(focusOn(\\&quot;subject\\&quot;)))\\n  )\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .resize(\\n    thumbnail()\\n      .height(1280)\\n      .aspectRatio(\\&quot;1.0\\&quot;)\\n      .gravity(autoGravity().autoFocus(focusOn(\\&quot;subject\\&quot;)))\\n  )\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&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\\\/f_auto,q_auto,g_auto:subject,h_1280,ar_1,c_thumb,b_white\\\/bo_1px_solid_gray\\\/docs\\\/rmv_bgd\\\/stuffed.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;format&quot;:&quot;auto&quot;,&quot;quality&quot;:&quot;auto&quot;,&quot;gravity&quot;:&quot;auto:subject&quot;,&quot;height&quot;:&quot;1280&quot;,&quot;aspect_ratio&quot;:&quot;1&quot;,&quot;crop_mode&quot;:&quot;thumb&quot;,&quot;background&quot;:&quot;white&quot;},{&quot;border&quot;:&quot;1px_solid_gray&quot;}],&quot;transformation_string&quot;:&quot;f_auto,q_auto,g_auto:subject,h_1280,ar_1,c_thumb,b_white\\\/bo_1px_solid_gray&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:null,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;docs\\\/rmv_bgd\\\/stuffed.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\/f_auto,q_auto,g_auto:subject,h_1280,ar_1,c_thumb,b_white\/bo_1px_solid_gray\/docs\/rmv_bgd\/stuffed.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/f_auto,q_auto,g_auto:subject,h_1280,ar_1,c_thumb,b_white\/bo_1px_solid_gray\/w_200\/docs\/rmv_bgd\/stuffed.jpg\" alt=\"Sheep in JPG Format With a White Background \" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"200\" height=\"200\"\/><\/a><\/p>\n<p>That way, even if you retain the image\u2019s original height of 1,280 pixels, the delivered version would still weigh only 92 KB.<\/p>\n<p>Another excellent way to eliminate excessive whitespace from images is to apply Cloudinary\u2019s trimming effect (<code>trim<\/code>), like this:<\/p>\n<p><cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;nodejs&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, {transformation: [ {quality: \\&quot;auto\\&quot;, effect: \\&quot;trim\\&quot;, background: \\&quot;white\\&quot;}, {border: \\&quot;1px_solid_gray\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, {transformation: [\\n  {quality: \\&quot;auto\\&quot;, effect: \\&quot;trim\\&quot;, background: \\&quot;white\\&quot;},\\n  {border: \\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .reshape(trim())\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .reshape(trim())\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot; &gt; &lt;Transformation quality=\\&quot;auto\\&quot; effect=\\&quot;trim\\&quot; background=\\&quot;white\\&quot; \\\/&gt; &lt;Transformation border=\\&quot;1px_solid_gray\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot; &gt;\\n\\t&lt;Transformation quality=\\&quot;auto\\&quot; effect=\\&quot;trim\\&quot; background=\\&quot;white\\&quot; \\\/&gt;\\n\\t&lt;Transformation border=\\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .reshape(trim())\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .reshape(trim())\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot; &gt; &lt;cld-transformation quality=\\&quot;auto\\&quot; effect=\\&quot;trim\\&quot; background=\\&quot;white\\&quot; \\\/&gt; &lt;cld-transformation border=\\&quot;1px_solid_gray\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot; &gt;\\n\\t&lt;cld-transformation quality=\\&quot;auto\\&quot; effect=\\&quot;trim\\&quot; background=\\&quot;white\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation border=\\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .reshape(trim())\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .reshape(trim())\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot; &gt; &lt;cl-transformation quality=\\&quot;auto\\&quot; effect=\\&quot;trim\\&quot; background=\\&quot;white\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation border=\\&quot;1px_solid_gray\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot; &gt;\\n\\t&lt;cl-transformation quality=\\&quot;auto\\&quot; effect=\\&quot;trim\\&quot; background=\\&quot;white\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation border=\\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .reshape(trim())\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .reshape(trim())\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;, {transformation: [ {quality: \\&quot;auto\\&quot;, effect: \\&quot;trim\\&quot;, background: \\&quot;white\\&quot;}, {border: \\&quot;1px_solid_gray\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;, {transformation: [\\n  {quality: \\&quot;auto\\&quot;, effect: \\&quot;trim\\&quot;, background: \\&quot;white\\&quot;},\\n  {border: \\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;).image(transformation=[ {&#039;quality&#039;: \\&quot;auto\\&quot;, &#039;effect&#039;: \\&quot;trim\\&quot;, &#039;background&#039;: \\&quot;white\\&quot;}, {&#039;border&#039;: \\&quot;1px_solid_gray\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;).image(transformation=[\\n  {&#039;quality&#039;: \\&quot;auto\\&quot;, &#039;effect&#039;: \\&quot;trim\\&quot;, &#039;background&#039;: \\&quot;white\\&quot;},\\n  {&#039;border&#039;: \\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;))\\n\\t-&gt;reshape(Reshape::trim())\\n\\t-&gt;backgroundColor(Color::WHITE)\\n\\t-&gt;delivery(Delivery::format(\\n\\tFormat::auto()))\\n\\t-&gt;delivery(Delivery::quality(\\n\\tQuality::auto()))\\n\\t-&gt;border(Border::solid(1,Color::GRAY));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;))\\n\\t-&gt;reshape(Reshape::trim())\\n\\t-&gt;backgroundColor(Color::WHITE)\\n\\t-&gt;delivery(Delivery::format(\\n\\tFormat::auto()))\\n\\t-&gt;delivery(Delivery::quality(\\n\\tQuality::auto()))\\n\\t-&gt;border(Border::solid(1,Color::GRAY));&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;quality\\&quot;=&gt;\\&quot;auto\\&quot;, \\&quot;effect\\&quot;=&gt;\\&quot;trim\\&quot;, \\&quot;background\\&quot;=&gt;\\&quot;white\\&quot;), array(\\&quot;border\\&quot;=&gt;\\&quot;1px_solid_gray\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;quality\\&quot;=&gt;\\&quot;auto\\&quot;, \\&quot;effect\\&quot;=&gt;\\&quot;trim\\&quot;, \\&quot;background\\&quot;=&gt;\\&quot;white\\&quot;),\\n  array(\\&quot;border\\&quot;=&gt;\\&quot;1px_solid_gray\\&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().quality(\\&quot;auto\\&quot;).effect(\\&quot;trim\\&quot;).background(\\&quot;white\\&quot;).chain() .border(\\&quot;1px_solid_gray\\&quot;)).imageTag(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .quality(\\&quot;auto\\&quot;).effect(\\&quot;trim\\&quot;).background(\\&quot;white\\&quot;).chain()\\n  .border(\\&quot;1px_solid_gray\\&quot;)).imageTag(\\&quot;docs\\\/rmv_bgd\\\/stuffed.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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, transformation: [ {quality: \\&quot;auto\\&quot;, effect: \\&quot;trim\\&quot;, background: \\&quot;white\\&quot;}, {border: \\&quot;1px_solid_gray\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, transformation: [\\n  {quality: \\&quot;auto\\&quot;, effect: \\&quot;trim\\&quot;, background: \\&quot;white\\&quot;},\\n  {border: \\&quot;1px_solid_gray\\&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().Quality(\\&quot;auto\\&quot;).Effect(\\&quot;trim\\&quot;).Background(\\&quot;white\\&quot;).Chain() .Border(\\&quot;1px_solid_gray\\&quot;)).BuildImageTag(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Quality(\\&quot;auto\\&quot;).Effect(\\&quot;trim\\&quot;).Background(\\&quot;white\\&quot;).Chain()\\n  .Border(\\&quot;1px_solid_gray\\&quot;)).BuildImageTag(\\&quot;docs\\\/rmv_bgd\\\/stuffed.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;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;).transformation(Transformation()\\n\\t.reshape(Reshape.trim())\\n\\t.backgroundColor(Color.WHITE)\\n\\t.delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.border(Border.solid(1,Color.GRAY)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;).transformation(Transformation()\\n\\t.reshape(Reshape.trim())\\n\\t.backgroundColor(Color.WHITE)\\n\\t.delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.border(Border.solid(1,Color.GRAY)));&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().setQuality(\\&quot;auto\\&quot;).setEffect(\\&quot;trim\\&quot;).setBackground(\\&quot;white\\&quot;).chain() .setBorder(\\&quot;1px_solid_gray\\&quot;)).generate(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setQuality(\\&quot;auto\\&quot;).setEffect(\\&quot;trim\\&quot;).setBackground(\\&quot;white\\&quot;).chain()\\n  .setBorder(\\&quot;1px_solid_gray\\&quot;)).generate(\\&quot;docs\\\/rmv_bgd\\\/stuffed.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().quality(\\&quot;auto\\&quot;).effect(\\&quot;trim\\&quot;).background(\\&quot;white\\&quot;).chain() .border(\\&quot;1px_solid_gray\\&quot;)).generate(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .quality(\\&quot;auto\\&quot;).effect(\\&quot;trim\\&quot;).background(\\&quot;white\\&quot;).chain()\\n  .border(\\&quot;1px_solid_gray\\&quot;)).generate(\\&quot;docs\\\/rmv_bgd\\\/stuffed.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;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;).transformation(Transformation()\\n\\t.reshape(Reshape.trim())\\n\\t.backgroundColor(Color.WHITE)\\n\\t.delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.border(Border.solid(1,Color.GRAY)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;docs\\\/rmv_bgd\\\/stuffed.jpg&#039;).transformation(Transformation()\\n\\t.reshape(Reshape.trim())\\n\\t.backgroundColor(Color.WHITE)\\n\\t.delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.border(Border.solid(1,Color.GRAY)));&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n\\t reshape(Reshape.trim())\\n\\t backgroundColor(Color.WHITE)\\n\\t delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t border(Border.solid(1,Color.GRAY)) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n\\t reshape(Reshape.trim())\\n\\t backgroundColor(Color.WHITE)\\n\\t delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t border(Border.solid(1,Color.GRAY)) \\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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, {transformation: [ {quality: \\&quot;auto\\&quot;, effect: \\&quot;trim\\&quot;, background: \\&quot;white\\&quot;}, {border: \\&quot;1px_solid_gray\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;, {transformation: [\\n  {quality: \\&quot;auto\\&quot;, effect: \\&quot;trim\\&quot;, background: \\&quot;white\\&quot;},\\n  {border: \\&quot;1px_solid_gray\\&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;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .reshape(trim())\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/stuffed.jpg\\&quot;)\\n  .reshape(trim())\\n  .backgroundColor(\\&quot;white\\&quot;)\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .border(solid(1, \\&quot;gray\\&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\\\/f_auto,q_auto,e_trim,b_white\\\/bo_1px_solid_gray\\\/docs\\\/rmv_bgd\\\/stuffed.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;format&quot;:&quot;auto&quot;,&quot;quality&quot;:&quot;auto&quot;,&quot;effect&quot;:&quot;trim&quot;,&quot;background&quot;:&quot;white&quot;},{&quot;border&quot;:&quot;1px_solid_gray&quot;}],&quot;transformation_string&quot;:&quot;f_auto,q_auto,e_trim,b_white\\\/bo_1px_solid_gray&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:null,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;docs\\\/rmv_bgd\\\/stuffed.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\/f_auto,q_auto,e_trim,b_white\/bo_1px_solid_gray\/docs\/rmv_bgd\/stuffed.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/f_auto,q_auto,e_trim,b_white\/bo_1px_solid_gray\/w_200\/docs\/rmv_bgd\/stuffed.jpg\" alt=\"Sheep in JPG With White Background \" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"200\" height=\"194\"\/><\/a><\/p>\n<h2>Not Everything Is Black and White<\/h2>\n<p>Besides those steps performed by the Background Removal Add-On, optimizing images for delivery often involves other transformations, such as replacing the transparent background and converting the image to a non-PNG format. You might wonder why we don\u2019t just return a (smaller) JPG that already has a solid white background.<\/p>\n<p>We\u2019re glad you asked.\n.<\/p>\n<h3>Neutral Colors<\/h3>\n<p>In addition to offering the same advantages as those from a white background, a light, neutral-colored background breaks the monotony of an all-white page, sometimes even conveying a certain style or personality without distracting visitors from the main theme.. <a href=\"https:\/\/www.walmart.com\/cp\/clothing\/5438?search_redirect=true&amp;redirect_query=apparel\">Walmart.com\u2019s apparel landing-page<\/a> is one example.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cloudinary-res.cloudinary.com\/image\/upload\/w_500,q_auto,f_auto,dpr_2.0\/docs\/remove_bg\/walmart_gray_bg.png\" alt=\"The Walmart Example\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"500\" height=\"266.5\"\/><\/p>\n<p>To have Cloudinary automatically change the background color, set the value of the background (<code>b_<\/code>) parameter in your URL to the desired color. For example, here\u2019s the <a href=\"https:\/\/res.cloudinary.com\/jackie\/image\/upload\/f_auto,q_auto,g_auto:subject,h_1280,ar_1,c_thumb,b_azure\/remove_bg\/new\/stuffed.jpg\">image of the sheep with a very light-blue background<\/a>.<\/p>\n<h3>True Colors<\/h3>\n<p>Conversely, some retailers, such as <a href=\"https:\/\/www.zara.com\">Zara.com<\/a>, opt for brightly colored backgrounds for white or black products and neutral backgrounds for other merchandise.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cloudinary-res.cloudinary.com\/image\/upload\/h_400,f_auto,q_auto,dpr_2.0\/docs\/remove_bg\/zara_colored_bgds.png\" alt=\"The Zara Example\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"286.5\" height=\"400\"\/><\/p>\n<h3>Without a Shadow of a Doubt<\/h3>\n<p>A fully transparent background makes it easy to add shadows. Even if  the object in the original photograph has a shadow, the Background Removal Add-On will remove that shadow, enabling you to add a consistent shadow location and size for all your product images.<\/p>\n<p>For example:<\/p>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<div style=\"text-align:center;\">\n<span style=\"display:inline-block;vertical-align:top;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/q_auto\/docs\/rmv_bgd\/remote_orig.jpg\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_200,f_auto,q_auto\/docs\/rmv_bgd\/remote_orig.jpg\" alt=\"Remote Control (Original)\" title=\"Remote-Control (Original)\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<b style=\"margin-right: 10px;display:block;\">Remote Control (Original)<\/b>\n<\/span>\n<span style=\"display:inline-block;vertical-align:top;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/q_auto\/docs\/rmv_bgd\/remote.png\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_200,f_auto,q_auto\/docs\/rmv_bgd\/remote.png\" alt=\"Backgroundless Remote Control\" title=\"Backgroundless Remote Control\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<b style=\"margin-right: 10px;display:block;\">Backgroundless Remote Control<\/b>\n<\/span>\n<span style=\"display:inline-block;vertical-align:top;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_800,q_auto\/e_shadow:50,x_12,y_12\/docs\/rmv_bgd\/remote.png\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_200,q_auto\/e_shadow:50,x_6,y_6\/h_150\/docs\/rmv_bgd\/remote.png \" alt=\"Backgroundless remote control with an added shadow\" title=\"Backgroundless remote control with an added shadow\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<b style=\"margin-right: 10px;display:block;\">Backgroundless remote control with an added shadow<\/b>\n<\/span>\n<\/div>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<p>Below is the transformation used for the far right image shown above: :<\/p>\n<p><cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;nodejs&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;, {transformation: [ {width: 200, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;}, {effect: \\&quot;shadow:50\\&quot;, x: 6, y: 6} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;, {transformation: [\\n  {width: 200, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {effect: \\&quot;shadow:50\\&quot;, x: 6, y: 6}\\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;docs\\\/rmv_bgd\\\/remote.png\\&quot;)\\n  .resize(scale().width(200))\\n  .delivery(quality(auto()))\\n  .effect(shadow().strength(50).offsetX(6).offsetY(6));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;)\\n  .resize(scale().width(200))\\n  .delivery(quality(auto()))\\n  .effect(shadow().strength(50).offsetX(6).offsetY(6));&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;docs\\\/rmv_bgd\\\/remote.png\\&quot; &gt; &lt;Transformation width=\\&quot;200\\&quot; quality=\\&quot;auto\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;Transformation effect=\\&quot;shadow:50\\&quot; x=\\&quot;6\\&quot; y=\\&quot;6\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot; &gt;\\n\\t&lt;Transformation width=\\&quot;200\\&quot; quality=\\&quot;auto\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt;\\n\\t&lt;Transformation effect=\\&quot;shadow:50\\&quot; x=\\&quot;6\\&quot; y=\\&quot;6\\&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;docs\\\/rmv_bgd\\\/remote.png\\&quot;)\\n  .resize(scale().width(200))\\n  .delivery(quality(auto()))\\n  .effect(shadow().strength(50).offsetX(6).offsetY(6));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;)\\n  .resize(scale().width(200))\\n  .delivery(quality(auto()))\\n  .effect(shadow().strength(50).offsetX(6).offsetY(6));&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;docs\\\/rmv_bgd\\\/remote.png\\&quot; &gt; &lt;cld-transformation width=\\&quot;200\\&quot; quality=\\&quot;auto\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;cld-transformation effect=\\&quot;shadow:50\\&quot; x=\\&quot;6\\&quot; y=\\&quot;6\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot; &gt;\\n\\t&lt;cld-transformation width=\\&quot;200\\&quot; quality=\\&quot;auto\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation effect=\\&quot;shadow:50\\&quot; x=\\&quot;6\\&quot; y=\\&quot;6\\&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;docs\\\/rmv_bgd\\\/remote.png\\&quot;)\\n  .resize(scale().width(200))\\n  .delivery(quality(auto()))\\n  .effect(shadow().strength(50).offsetX(6).offsetY(6));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;)\\n  .resize(scale().width(200))\\n  .delivery(quality(auto()))\\n  .effect(shadow().strength(50).offsetX(6).offsetY(6));&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;docs\\\/rmv_bgd\\\/remote.png\\&quot; &gt; &lt;cl-transformation width=\\&quot;200\\&quot; quality=\\&quot;auto\\&quot; crop=\\&quot;scale\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation effect=\\&quot;shadow:50\\&quot; x=\\&quot;6\\&quot; y=\\&quot;6\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot; &gt;\\n\\t&lt;cl-transformation width=\\&quot;200\\&quot; quality=\\&quot;auto\\&quot; crop=\\&quot;scale\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation effect=\\&quot;shadow:50\\&quot; x=\\&quot;6\\&quot; y=\\&quot;6\\&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;docs\\\/rmv_bgd\\\/remote.png\\&quot;)\\n  .resize(scale().width(200))\\n  .delivery(quality(auto()))\\n  .effect(shadow().strength(50).offsetX(6).offsetY(6));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;)\\n  .resize(scale().width(200))\\n  .delivery(quality(auto()))\\n  .effect(shadow().strength(50).offsetX(6).offsetY(6));&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;docs\\\/rmv_bgd\\\/remote.png&#039;, {transformation: [ {width: 200, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;}, {effect: \\&quot;shadow:50\\&quot;, x: 6, y: 6} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;docs\\\/rmv_bgd\\\/remote.png&#039;, {transformation: [\\n  {width: 200, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {effect: \\&quot;shadow:50\\&quot;, x: 6, y: 6}\\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;docs\\\/rmv_bgd\\\/remote.png\\&quot;).image(transformation=[ {&#039;width&#039;: 200, &#039;quality&#039;: \\&quot;auto\\&quot;, &#039;crop&#039;: \\&quot;scale\\&quot;}, {&#039;effect&#039;: \\&quot;shadow:50\\&quot;, &#039;x&#039;: 6, &#039;y&#039;: 6} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;).image(transformation=[\\n  {&#039;width&#039;: 200, &#039;quality&#039;: \\&quot;auto\\&quot;, &#039;crop&#039;: \\&quot;scale\\&quot;},\\n  {&#039;effect&#039;: \\&quot;shadow:50\\&quot;, &#039;x&#039;: 6, &#039;y&#039;: 6}\\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;docs\\\/rmv_bgd\\\/remote.png&#039;))\\n\\t-&gt;resize(Resize::scale()-&gt;width(200))\\n\\t-&gt;delivery(Delivery::quality(\\n\\tQuality::auto()))\\n\\t-&gt;effect(Effect::shadow()-&gt;strength(50)\\n-&gt;offsetX(6)\\n-&gt;offsetY(6));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;docs\\\/rmv_bgd\\\/remote.png&#039;))\\n\\t-&gt;resize(Resize::scale()-&gt;width(200))\\n\\t-&gt;delivery(Delivery::quality(\\n\\tQuality::auto()))\\n\\t-&gt;effect(Effect::shadow()-&gt;strength(50)\\n-&gt;offsetX(6)\\n-&gt;offsetY(6));&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;docs\\\/rmv_bgd\\\/remote.png\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;width\\&quot;=&gt;200, \\&quot;quality\\&quot;=&gt;\\&quot;auto\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;), array(\\&quot;effect\\&quot;=&gt;\\&quot;shadow:50\\&quot;, \\&quot;x\\&quot;=&gt;6, \\&quot;y\\&quot;=&gt;6) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;width\\&quot;=&gt;200, \\&quot;quality\\&quot;=&gt;\\&quot;auto\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;),\\n  array(\\&quot;effect\\&quot;=&gt;\\&quot;shadow:50\\&quot;, \\&quot;x\\&quot;=&gt;6, \\&quot;y\\&quot;=&gt;6)\\n  )))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().width(200).quality(\\&quot;auto\\&quot;).crop(\\&quot;scale\\&quot;).chain() .effect(\\&quot;shadow:50\\&quot;).x(6).y(6)).imageTag(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .width(200).quality(\\&quot;auto\\&quot;).crop(\\&quot;scale\\&quot;).chain()\\n  .effect(\\&quot;shadow:50\\&quot;).x(6).y(6)).imageTag(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&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;docs\\\/rmv_bgd\\\/remote.png\\&quot;, transformation: [ {width: 200, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;}, {effect: \\&quot;shadow:50\\&quot;, x: 6, y: 6} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;, transformation: [\\n  {width: 200, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {effect: \\&quot;shadow:50\\&quot;, x: 6, y: 6}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(200).Quality(\\&quot;auto\\&quot;).Crop(\\&quot;scale\\&quot;).Chain() .Effect(\\&quot;shadow:50\\&quot;).X(6).Y(6)).BuildImageTag(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Width(200).Quality(\\&quot;auto\\&quot;).Crop(\\&quot;scale\\&quot;).Chain()\\n  .Effect(\\&quot;shadow:50\\&quot;).X(6).Y(6)).BuildImageTag(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&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;docs\\\/rmv_bgd\\\/remote.png&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(200))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.effect(Effect.shadow().strength(50)\\n.offsetX(6)\\n.offsetY(6)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;docs\\\/rmv_bgd\\\/remote.png&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(200))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.effect(Effect.shadow().strength(50)\\n.offsetX(6)\\n.offsetY(6)));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setWidth(200).setQuality(\\&quot;auto\\&quot;).setCrop(\\&quot;scale\\&quot;).chain() .setEffect(\\&quot;shadow:50\\&quot;).setX(6).setY(6)).generate(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setWidth(200).setQuality(\\&quot;auto\\&quot;).setCrop(\\&quot;scale\\&quot;).chain()\\n  .setEffect(\\&quot;shadow:50\\&quot;).setX(6).setY(6)).generate(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().width(200).quality(\\&quot;auto\\&quot;).crop(\\&quot;scale\\&quot;).chain() .effect(\\&quot;shadow:50\\&quot;).x(6).y(6)).generate(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .width(200).quality(\\&quot;auto\\&quot;).crop(\\&quot;scale\\&quot;).chain()\\n  .effect(\\&quot;shadow:50\\&quot;).x(6).y(6)).generate(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&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;docs\\\/rmv_bgd\\\/remote.png&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(200))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.effect(Effect.shadow().strength(50)\\n.offsetX(6)\\n.offsetY(6)));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;docs\\\/rmv_bgd\\\/remote.png&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(200))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.effect(Effect.shadow().strength(50)\\n.offsetX(6)\\n.offsetY(6)));&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;docs\\\/rmv_bgd\\\/remote.png\\&quot;)\\n\\t resize(Resize.scale() { width(200) })\\n\\t delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t effect(Effect.shadow() { strength(50)\\n offsetX(6)\\n offsetY(6) }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;)\\n\\t resize(Resize.scale() { width(200) })\\n\\t delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t effect(Effect.shadow() { strength(50)\\n offsetX(6)\\n offsetY(6) }) \\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;docs\\\/rmv_bgd\\\/remote.png\\&quot;, {transformation: [ {width: 200, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;}, {effect: \\&quot;shadow:50\\&quot;, x: 6, y: 6} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;, {transformation: [\\n  {width: 200, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {effect: \\&quot;shadow:50\\&quot;, x: 6, y: 6}\\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;docs\\\/rmv_bgd\\\/remote.png\\&quot;)\\n  .resize(scale().width(200))\\n  .delivery(quality(auto()))\\n  .effect(shadow().strength(50).offsetX(6).offsetY(6));&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/remote.png\\&quot;)\\n  .resize(scale().width(200))\\n  .delivery(quality(auto()))\\n  .effect(shadow().strength(50).offsetX(6).offsetY(6));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/upload\\\/w_200,q_auto\\\/e_shadow:50,x_6,y_6\\\/docs\\\/rmv_bgd\\\/remote.png&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;width&quot;:&quot;200&quot;,&quot;quality&quot;:&quot;auto&quot;},{&quot;effect&quot;:&quot;shadow:50&quot;,&quot;x&quot;:&quot;6&quot;,&quot;y&quot;:&quot;6&quot;}],&quot;transformation_string&quot;:&quot;w_200,q_auto\\\/e_shadow:50,x_6,y_6&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:null,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;docs\\\/rmv_bgd\\\/remote.png&quot;,&quot;extension&quot;:&quot;png&quot;,&quot;format&quot;:&quot;png&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><\/p>\n<h3>Green Screening Without a Green Screen<\/h3>\n<p>For fun, add the <code>underlay<\/code> parameter set to an image\u2019s public ID to add background scenery for a green-screen-like effect..<\/p>\n<p>For example, with an instantaneous on-the-fly transformation, we can send our baseball player to outer space, get the dog off the couch, and place the hiking boots against natural scenery:<\/p>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<div style=\"text-align:center;\">\n<span style=\"display:inline-block;vertical-align:top;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/q_auto\/docs\/rmv_bgd\/baseball_orig.jpg\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_250,q_auto\/docs\/rmv_bgd\/baseball_orig.jpg\" alt=\"Baseball Player (Original)\" title=\"Baseball Player (Origina)\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<\/span>\n<span style=\"display:inline-block;vertical-align:top;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_800,f_auto,q_auto\/u_docs:bg_galaxy,g_south,h_1000\/docs\/rmv_bgd\/baseball.png\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_800,f_auto,q_auto\/u_docs:bg_galaxy,g_south,h_1000\/w_250,h_167,c_fill,g_south\/docs\/rmv_bgd\/baseball.png\" alt=\"Baseball Player in Outer Space\" title=\"Baseball Player in Outer Space\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<\/span>\n<p>\n<span style=\"display:inline-block;vertical-align:top;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_800,q_auto\/docs\/rmv_bgd\/dog_couch_orig.jpg\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_250,q_auto\/docs\/rmv_bgd\/dog_couch_orig.jpg\" alt=\"Lazy Dog (Original)\" title=\"Lazy Dog (Original)\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<\/span>\n<span style=\"display:inline-block;vertical-align:top;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_800,f_auto,q_auto\/u_docs:bg_beach,g_south,h_1000\/docs\/rmv_bgd\/dog_couch.png\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_800,f_auto,q_auto\/u_docs:bg_beach,g_south,h_1000\/w_250\/docs\/rmv_bgd\/dog_couch.png\" alt=\"Lazy Dog on the Beach\" title=\"Lazy Dog on the Beach\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<\/span>\n<p>\n<span style=\"display:inline-block;vertical-align:top;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_800,q_auto\/docs\/rmv_bgd\/shoes_orig.jpg\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_250,q_auto\/docs\/rmv_bgd\/shoes_orig.jpg\" alt=\"Hiking Boots (Original)\" title=\"Hiking Boots (Original)\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<\/span>\n<span style=\"display:inline-block;vertical-align:top;\">\n<a href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_800,f_auto,q_auto\/u_docs:canyon2,g_south,h_1000\/docs\/rmv_bgd\/shoes.png\" target =\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/w_800,f_auto,q_auto\/u_docs:canyon2,g_south,h_1000\/w_250\/docs\/rmv_bgd\/shoes.png\" alt=\"Hiking Boots With a Background of Natural Scenery\" title=\"Hiking Boots With a Backgound of Natural Scenery\" style=\"margin-right: 10px;display:block;\" \/><\/a>\n<\/span>\n<\/div>\n<div style=\"clear: both; margin-bottom: 20px\">\n<\/div>\n<p>Below is the delivery code for the hiking boots image.<br \/>\n(Click the other transformed images in the right column above to see their delivery URLs in your browser.)<\/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;docs\\\/rmv_bgd\\\/shoes.png\\&quot;, {transformation: [ {width: 800, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;}, {underlay: \\&quot;docs:canyon2\\&quot;, gravity: \\&quot;south\\&quot;, height: 1000} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;, {transformation: [\\n  {width: 800, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {underlay: \\&quot;docs:canyon2\\&quot;, gravity: \\&quot;south\\&quot;, height: 1000}\\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;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)\\n  .resize(scale().width(800))\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .underlay(\\n    source(\\n      image(\\&quot;docs\\\/canyon2\\&quot;).transformation(\\n        new Transformation().resize(scale().height(1000))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;south\\&quot;)))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)\\n  .resize(scale().width(800))\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .underlay(\\n    source(\\n      image(\\&quot;docs\\\/canyon2\\&quot;).transformation(\\n        new Transformation().resize(scale().height(1000))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;south\\&quot;)))\\n  );&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot; &gt; &lt;Transformation width=\\&quot;800\\&quot; quality=\\&quot;auto\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;Transformation underlay=\\&quot;docs:canyon2\\&quot; gravity=\\&quot;south\\&quot; height=\\&quot;1000\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot; &gt;\\n\\t&lt;Transformation width=\\&quot;800\\&quot; quality=\\&quot;auto\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt;\\n\\t&lt;Transformation underlay=\\&quot;docs:canyon2\\&quot; gravity=\\&quot;south\\&quot; height=\\&quot;1000\\&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;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)\\n  .resize(scale().width(800))\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .underlay(\\n    source(\\n      image(\\&quot;docs\\\/canyon2\\&quot;).transformation(\\n        new Transformation().resize(scale().height(1000))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;south\\&quot;)))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)\\n  .resize(scale().width(800))\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .underlay(\\n    source(\\n      image(\\&quot;docs\\\/canyon2\\&quot;).transformation(\\n        new Transformation().resize(scale().height(1000))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;south\\&quot;)))\\n  );&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot; &gt; &lt;cld-transformation width=\\&quot;800\\&quot; quality=\\&quot;auto\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;cld-transformation :underlay=\\&quot;docs:canyon2\\&quot; gravity=\\&quot;south\\&quot; height=\\&quot;1000\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot; &gt;\\n\\t&lt;cld-transformation width=\\&quot;800\\&quot; quality=\\&quot;auto\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :underlay=\\&quot;docs:canyon2\\&quot; gravity=\\&quot;south\\&quot; height=\\&quot;1000\\&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;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)\\n  .resize(scale().width(800))\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .underlay(\\n    source(\\n      image(\\&quot;docs\\\/canyon2\\&quot;).transformation(\\n        new Transformation().resize(scale().height(1000))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;south\\&quot;)))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)\\n  .resize(scale().width(800))\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .underlay(\\n    source(\\n      image(\\&quot;docs\\\/canyon2\\&quot;).transformation(\\n        new Transformation().resize(scale().height(1000))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;south\\&quot;)))\\n  );&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot; &gt; &lt;cl-transformation width=\\&quot;800\\&quot; quality=\\&quot;auto\\&quot; crop=\\&quot;scale\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation underlay=\\&quot;docs:canyon2\\&quot; gravity=\\&quot;south\\&quot; height=\\&quot;1000\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot; &gt;\\n\\t&lt;cl-transformation width=\\&quot;800\\&quot; quality=\\&quot;auto\\&quot; crop=\\&quot;scale\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation underlay=\\&quot;docs:canyon2\\&quot; gravity=\\&quot;south\\&quot; height=\\&quot;1000\\&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;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)\\n  .resize(scale().width(800))\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .underlay(\\n    source(\\n      image(\\&quot;docs\\\/canyon2\\&quot;).transformation(\\n        new Transformation().resize(scale().height(1000))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;south\\&quot;)))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)\\n  .resize(scale().width(800))\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .underlay(\\n    source(\\n      image(\\&quot;docs\\\/canyon2\\&quot;).transformation(\\n        new Transformation().resize(scale().height(1000))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;south\\&quot;)))\\n  );&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;docs\\\/rmv_bgd\\\/shoes.png&#039;, {transformation: [ {width: 800, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;}, {underlay: new cloudinary.Layer().publicId(\\&quot;docs:canyon2\\&quot;), gravity: \\&quot;south\\&quot;, height: 1000} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;docs\\\/rmv_bgd\\\/shoes.png&#039;, {transformation: [\\n  {width: 800, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {underlay: new cloudinary.Layer().publicId(\\&quot;docs:canyon2\\&quot;), gravity: \\&quot;south\\&quot;, height: 1000}\\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;docs\\\/rmv_bgd\\\/shoes.png\\&quot;).image(transformation=[ {&#039;width&#039;: 800, &#039;quality&#039;: \\&quot;auto\\&quot;, &#039;crop&#039;: \\&quot;scale\\&quot;}, {&#039;underlay&#039;: \\&quot;docs:canyon2\\&quot;, &#039;gravity&#039;: \\&quot;south\\&quot;, &#039;height&#039;: 1000} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;).image(transformation=[\\n  {&#039;width&#039;: 800, &#039;quality&#039;: \\&quot;auto\\&quot;, &#039;crop&#039;: \\&quot;scale\\&quot;},\\n  {&#039;underlay&#039;: \\&quot;docs:canyon2\\&quot;, &#039;gravity&#039;: \\&quot;south\\&quot;, &#039;height&#039;: 1000}\\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;docs\\\/rmv_bgd\\\/shoes.png&#039;))\\n\\t-&gt;resize(Resize::scale()-&gt;width(800))\\n\\t-&gt;delivery(Delivery::format(\\n\\tFormat::auto()))\\n\\t-&gt;delivery(Delivery::quality(\\n\\tQuality::auto()))\\n\\t-&gt;underlay(Underlay::source(\\n\\tSource::image(\\&quot;docs\\\/canyon2\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;height(1000)))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::south()))\\n\\t)\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;docs\\\/rmv_bgd\\\/shoes.png&#039;))\\n\\t-&gt;resize(Resize::scale()-&gt;width(800))\\n\\t-&gt;delivery(Delivery::format(\\n\\tFormat::auto()))\\n\\t-&gt;delivery(Delivery::quality(\\n\\tQuality::auto()))\\n\\t-&gt;underlay(Underlay::source(\\n\\tSource::image(\\&quot;docs\\\/canyon2\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;height(1000)))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::south()))\\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;docs\\\/rmv_bgd\\\/shoes.png\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;width\\&quot;=&gt;800, \\&quot;quality\\&quot;=&gt;\\&quot;auto\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;), array(\\&quot;underlay\\&quot;=&gt;\\&quot;docs:canyon2\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;south\\&quot;, \\&quot;height\\&quot;=&gt;1000) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;width\\&quot;=&gt;800, \\&quot;quality\\&quot;=&gt;\\&quot;auto\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;),\\n  array(\\&quot;underlay\\&quot;=&gt;\\&quot;docs:canyon2\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;south\\&quot;, \\&quot;height\\&quot;=&gt;1000)\\n  )))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().width(800).quality(\\&quot;auto\\&quot;).crop(\\&quot;scale\\&quot;).chain() .underlay(new Layer().publicId(\\&quot;docs:canyon2\\&quot;)).gravity(\\&quot;south\\&quot;).height(1000)).imageTag(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .width(800).quality(\\&quot;auto\\&quot;).crop(\\&quot;scale\\&quot;).chain()\\n  .underlay(new Layer().publicId(\\&quot;docs:canyon2\\&quot;)).gravity(\\&quot;south\\&quot;).height(1000)).imageTag(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&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;docs\\\/rmv_bgd\\\/shoes.png\\&quot;, transformation: [ {width: 800, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;}, {underlay: \\&quot;docs:canyon2\\&quot;, gravity: \\&quot;south\\&quot;, height: 1000} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;, transformation: [\\n  {width: 800, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {underlay: \\&quot;docs:canyon2\\&quot;, gravity: \\&quot;south\\&quot;, height: 1000}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(800).Quality(\\&quot;auto\\&quot;).Crop(\\&quot;scale\\&quot;).Chain() .Underlay(new Layer().PublicId(\\&quot;docs:canyon2\\&quot;)).Gravity(\\&quot;south\\&quot;).Height(1000)).BuildImageTag(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Width(800).Quality(\\&quot;auto\\&quot;).Crop(\\&quot;scale\\&quot;).Chain()\\n  .Underlay(new Layer().PublicId(\\&quot;docs:canyon2\\&quot;)).Gravity(\\&quot;south\\&quot;).Height(1000)).BuildImageTag(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&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;docs\\\/rmv_bgd\\\/shoes.png&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(800))\\n\\t.delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.underlay(Underlay.source(\\n\\tSource.image(\\&quot;docs\\\/canyon2\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().height(1000)))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n\\t)\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;docs\\\/rmv_bgd\\\/shoes.png&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(800))\\n\\t.delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.underlay(Underlay.source(\\n\\tSource.image(\\&quot;docs\\\/canyon2\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().height(1000)))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n\\t)\\n\\t));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setWidth(800).setQuality(\\&quot;auto\\&quot;).setCrop(\\&quot;scale\\&quot;).chain() .setUnderlay(\\&quot;docs:canyon2\\&quot;).setGravity(\\&quot;south\\&quot;).setHeight(1000)).generate(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setWidth(800).setQuality(\\&quot;auto\\&quot;).setCrop(\\&quot;scale\\&quot;).chain()\\n  .setUnderlay(\\&quot;docs:canyon2\\&quot;).setGravity(\\&quot;south\\&quot;).setHeight(1000)).generate(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().width(800).quality(\\&quot;auto\\&quot;).crop(\\&quot;scale\\&quot;).chain() .underlay(new Layer().publicId(\\&quot;docs:canyon2\\&quot;)).gravity(\\&quot;south\\&quot;).height(1000)).generate(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .width(800).quality(\\&quot;auto\\&quot;).crop(\\&quot;scale\\&quot;).chain()\\n  .underlay(new Layer().publicId(\\&quot;docs:canyon2\\&quot;)).gravity(\\&quot;south\\&quot;).height(1000)).generate(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&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;docs\\\/rmv_bgd\\\/shoes.png&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(800))\\n\\t.delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.underlay(Underlay.source(\\n\\tSource.image(\\&quot;docs\\\/canyon2\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().height(1000)))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n\\t)\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;docs\\\/rmv_bgd\\\/shoes.png&#039;).transformation(Transformation()\\n\\t.resize(Resize.scale().width(800))\\n\\t.delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t.delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t.underlay(Underlay.source(\\n\\tSource.image(\\&quot;docs\\\/canyon2\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().height(1000)))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\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;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)\\n\\t resize(Resize.scale() { width(800) })\\n\\t delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t underlay(Underlay.source(\\n\\tSource.image(\\&quot;docs\\\/canyon2\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { height(1000) }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\n\\t })\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)\\n\\t resize(Resize.scale() { width(800) })\\n\\t delivery(Delivery.format(\\n\\tFormat.auto()))\\n\\t delivery(Delivery.quality(\\n\\tQuality.auto()))\\n\\t underlay(Underlay.source(\\n\\tSource.image(\\&quot;docs\\\/canyon2\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { height(1000) }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.south()))\\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;docs\\\/rmv_bgd\\\/shoes.png\\&quot;, {transformation: [ {width: 800, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;}, {underlay: new cloudinary.Layer().publicId(\\&quot;docs:canyon2\\&quot;), gravity: \\&quot;south\\&quot;, height: 1000} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;, {transformation: [\\n  {width: 800, quality: \\&quot;auto\\&quot;, crop: \\&quot;scale\\&quot;},\\n  {underlay: new cloudinary.Layer().publicId(\\&quot;docs:canyon2\\&quot;), gravity: \\&quot;south\\&quot;, height: 1000}\\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;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)\\n  .resize(scale().width(800))\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .underlay(\\n    source(\\n      image(\\&quot;docs\\\/canyon2\\&quot;).transformation(\\n        new Transformation().resize(scale().height(1000))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;south\\&quot;)))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;docs\\\/rmv_bgd\\\/shoes.png\\&quot;)\\n  .resize(scale().width(800))\\n  .delivery(format(auto()))\\n  .delivery(quality(auto()))\\n  .underlay(\\n    source(\\n      image(\\&quot;docs\\\/canyon2\\&quot;).transformation(\\n        new Transformation().resize(scale().height(1000))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;south\\&quot;)))\\n  );&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/upload\\\/w_800,f_auto,q_auto\\\/u_docs:canyon2,g_south,h_1000\\\/docs\\\/rmv_bgd\\\/shoes.png&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;width&quot;:&quot;800&quot;,&quot;format&quot;:&quot;auto&quot;,&quot;quality&quot;:&quot;auto&quot;},{&quot;underlay&quot;:&quot;docs:canyon2&quot;,&quot;gravity&quot;:&quot;south&quot;,&quot;height&quot;:&quot;1000&quot;}],&quot;transformation_string&quot;:&quot;w_800,f_auto,q_auto\\\/u_docs:canyon2,g_south,h_1000&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:null,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;docs\\\/rmv_bgd\\\/shoes.png&quot;,&quot;extension&quot;:&quot;png&quot;,&quot;format&quot;:&quot;png&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><\/p>\n<h2>Put It All Together<\/h2>\n<p>To display product photos on your own site or marketplaces, or to offer background-removal service for the photos uploaded by your users, you need an automated, efficient, and reliable solution that ultimately delivers images with a sharp and clear foreground image. Once the original background is \u201cout of the picture,\u201d you can freely deliver your product images with white backgrounds, neutral colors, bright colors, or  in context of a realistic scene.<\/p>\n<p>Do all of the above if you wish. One way is to place all your background-free images\u2014along with other product images or videos\u2014in a single carousel-controlled gallery, such as Cloudinary\u2019s <strong>Product Gallery<\/strong>. For details, see this <a href=\"https:\/\/cloudinary.com\/blog\/introducing_the_cloudinary_product_gallery_enabling_a_dynamic_buyer_experience\">blog post<\/a>, this <a href=\"https:\/\/cloudinary.com\/documentation\/product_gallery#product_gallery_video_tutorial\">video tutorial<\/a>, and the <a href=\"https:\/\/cloudinary.com\/documentation\/product_gallery\">Product Gallery documentation<\/a>.<\/p>\n<h2>Now It\u2019s Your Turn!<\/h2>\n<p>To get started, <a href=\"https:\/\/cloudinary.com\/users\/register\/free\">sign up for a free Cloudinary account<\/a> and register for the free tier of <a href=\"https:\/\/cloudinary.com\/users\/login?RelayState=%2Fconsole%2Faddons\">Cloudinary\u2019s AI Background Removal Add-On<\/a>. Also, check out <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_ai_background_removal_addon.html\">the add-on\u2019s  documentation<\/a>.<\/p>\n<p>We\u2019d love to see your transformed photos in the comments below.<\/p>\n<h2>Want to learn more about image editing?<\/h2>\n<p>Have a look at these articles:<\/p>\n<ul>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/image_editing_basics_and_a_tutorial_for_automation_with_ai\">Image-Editing Basics and a Tutorial for Automation With AI<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds\">How to Automatically Remove Photo Backgrounds in Seconds With AI<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/10_great_jquery_sliders_and_5_ways_to_build_one_yourself\">Top 7 jQuery Sliders and Three Ways in Which to Create Your Own<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/adding_watermarks_credits_badges_and_text_overlays_to_images\">Adding Image Watermarks, Credits, Badges and Text Overlays to Images<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/add_the_360_product_viewer_to_your_commerce_site_with_cloudinary\">Add the 360 Product Viewer to Your Commerce Site with Cloudinary<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/new_ai_based_image_auto_crop_algorithm_sticks_to_the_subject\">New AI-Based Image Auto-Crop Algorithm Sticks to the Subject<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/how_to_improve_your_shopify_s_store_loading_times_using_cloudinary\">Integrating Cloudinary Into Your Shopify Store<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/how_to_overlay_text_on_image_easily_pixel_perfect_and_with_no_css_html\">How to Overlay Text on Image Easily, Pixel Perfect and With No CSS\/HTML<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/taking_cloudinary_s_magento_extension_to_the_next_level\">Taking Cloudinary\u2019s Magento Extension to the Next Level<\/a>\n<\/li>\n<\/ul>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":21864,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[336,85],"class_list":["post-21863","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-ai","tag-deep-learning"],"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>Automate Photo-Background Removal With AI<\/title>\n<meta name=\"description\" content=\"Cloudinary&#039;s deep-learning algorithm automatically removes backgrounds from images for engaging online-store photos and fun green-screen effects.\" \/>\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\/how_to_automatically_and_professionally_remove_photo_backgrounds\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Automatically Remove Photo Backgrounds in Seconds With AI\" \/>\n<meta property=\"og:description\" content=\"Cloudinary&#039;s deep-learning algorithm automatically removes backgrounds from images for engaging online-store photos and fun green-screen effects.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-23T10:35:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-03T22:31:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649721509\/Web_Assets\/blog\/ai_remove_background_fast\/ai_remove_background_fast-jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"1540\" \/>\n\t<meta property=\"og:image:height\" content=\"847\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"How to Automatically Remove Photo Backgrounds in Seconds With AI\",\"datePublished\":\"2020-08-23T10:35:00+00:00\",\"dateModified\":\"2025-05-03T22:31:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds\"},\"wordCount\":10,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649721509\/Web_Assets\/blog\/ai_remove_background_fast\/ai_remove_background_fast.jpg?_i=AA\",\"keywords\":[\"AI\",\"Deep Learning\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2020\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds\",\"url\":\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds\",\"name\":\"Automate Photo-Background Removal With AI\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649721509\/Web_Assets\/blog\/ai_remove_background_fast\/ai_remove_background_fast.jpg?_i=AA\",\"datePublished\":\"2020-08-23T10:35:00+00:00\",\"dateModified\":\"2025-05-03T22:31:45+00:00\",\"description\":\"Cloudinary's deep-learning algorithm automatically removes backgrounds from images for engaging online-store photos and fun green-screen effects.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649721509\/Web_Assets\/blog\/ai_remove_background_fast\/ai_remove_background_fast.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649721509\/Web_Assets\/blog\/ai_remove_background_fast\/ai_remove_background_fast.jpg?_i=AA\",\"width\":1540,\"height\":847},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Automatically Remove Photo Backgrounds in Seconds With AI\"}]},{\"@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":"Automate Photo-Background Removal With AI","description":"Cloudinary's deep-learning algorithm automatically removes backgrounds from images for engaging online-store photos and fun green-screen effects.","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\/how_to_automatically_and_professionally_remove_photo_backgrounds","og_locale":"en_US","og_type":"article","og_title":"How to Automatically Remove Photo Backgrounds in Seconds With AI","og_description":"Cloudinary's deep-learning algorithm automatically removes backgrounds from images for engaging online-store photos and fun green-screen effects.","og_url":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds","og_site_name":"Cloudinary Blog","article_published_time":"2020-08-23T10:35:00+00:00","article_modified_time":"2025-05-03T22:31:45+00:00","og_image":[{"width":1540,"height":847,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649721509\/Web_Assets\/blog\/ai_remove_background_fast\/ai_remove_background_fast-jpg?_i=AA","type":"image\/jpeg"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds"},"author":{"name":"","@id":""},"headline":"How to Automatically Remove Photo Backgrounds in Seconds With AI","datePublished":"2020-08-23T10:35:00+00:00","dateModified":"2025-05-03T22:31:45+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds"},"wordCount":10,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649721509\/Web_Assets\/blog\/ai_remove_background_fast\/ai_remove_background_fast.jpg?_i=AA","keywords":["AI","Deep Learning"],"inLanguage":"en-US","copyrightYear":"2020","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds","url":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds","name":"Automate Photo-Background Removal With AI","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649721509\/Web_Assets\/blog\/ai_remove_background_fast\/ai_remove_background_fast.jpg?_i=AA","datePublished":"2020-08-23T10:35:00+00:00","dateModified":"2025-05-03T22:31:45+00:00","description":"Cloudinary's deep-learning algorithm automatically removes backgrounds from images for engaging online-store photos and fun green-screen effects.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649721509\/Web_Assets\/blog\/ai_remove_background_fast\/ai_remove_background_fast.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649721509\/Web_Assets\/blog\/ai_remove_background_fast\/ai_remove_background_fast.jpg?_i=AA","width":1540,"height":847},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/how_to_automatically_and_professionally_remove_photo_backgrounds#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Automatically Remove Photo Backgrounds in Seconds With AI"}]},{"@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\/v1649721509\/Web_Assets\/blog\/ai_remove_background_fast\/ai_remove_background_fast.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21863","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=21863"}],"version-history":[{"count":14,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21863\/revisions"}],"predecessor-version":[{"id":37575,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21863\/revisions\/37575"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/21864"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=21863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=21863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=21863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}