<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shazomii</title>
    <description>The latest articles on DEV Community by Shazomii (@shazomii).</description>
    <link>https://dev.to/shazomii</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F250610%2Ffd6cdc8a-a7cd-4b6e-9a76-fc429a39f8a8.jpg</url>
      <title>DEV Community: Shazomii</title>
      <link>https://dev.to/shazomii</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shazomii"/>
    <language>en</language>
    <item>
      <title>March Media Madness Takeaways [Yet Another Cloudinary Blog post] - Part II</title>
      <dc:creator>Shazomii</dc:creator>
      <pubDate>Fri, 27 Mar 2020 12:21:16 +0000</pubDate>
      <link>https://dev.to/shazomii/march-media-madness-takeaways-yet-another-cloudinary-blog-post-part-ii-3g2b</link>
      <guid>https://dev.to/shazomii/march-media-madness-takeaways-yet-another-cloudinary-blog-post-part-ii-3g2b</guid>
      <description>&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1234071616562266112-107" src="https://platform.twitter.com/embed/Tweet.html?id=1234071616562266112"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1234071616562266112-107');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1234071616562266112&amp;amp;theme=dark"
  }



 &lt;br&gt;
&lt;em&gt;&lt;a href="https://cloudinary.gitbook.io/march-media-madness-gtt-2020/" rel="noopener noreferrer"&gt;#MarchMediaMadness&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is the second part of a 3 part series I'm writing about the &lt;a href="https://cloudinary.gitbook.io/march-media-madness-gtt-2020" rel="noopener noreferrer"&gt;Guess the Transformation&lt;/a&gt; challenge being hosted by Prosper Otemuyiwa (&lt;a href="https://twitter.com/unicodeveloper" rel="noopener noreferrer"&gt;@unicodeveloper&lt;/a&gt;) and &lt;a href="https://cloudinary.com" rel="noopener noreferrer"&gt;Cloudinary&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here's a &lt;a href="https://dev.to/shazomii/march-media-madness-takeaways-part-i-yet-another-cloudinary-blog-post-3m84"&gt;link to the first part&lt;/a&gt; of the series to get you up to speed.&lt;/p&gt;

&lt;p&gt;As I noted in the first post, most of these challenges can be solved using various approaches. The purpose of this post is to try to show how the solution to each day's challenge is derived. &lt;/p&gt;

&lt;p&gt;I have also included a link to the Cloudinary Cookbook recipe/documentation related to each day's challenge for you to check out more media magic!&lt;/p&gt;

&lt;p&gt;This second part covers the next 10 days (11th March - 20th March, 2020).&lt;/p&gt;

&lt;p&gt;Let's go!&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 11 (March 11th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/documentation/advanced_facial_attributes_detection_addon#eyes_overlays" rel="noopener noreferrer"&gt;Eyes Overlays&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdbposo90hq0jegxr0ci.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdbposo90hq0jegxr0ci.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/v1583944329/_mmm/finepeople.jpg" width="800" height="797"&gt;&lt;/a&gt;&lt;/p&gt;
First Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/v1583944329/_mmm/finepeople.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/v1583944329/_mmm/finepeople.jpg&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdur6jl3vgufolihl8d2y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdur6jl3vgufolihl8d2y.png" alt="https://res.cloudinary.com/cdemo/image/upload/v1583943678/_mmm/glasses.png" width="739" height="259"&gt;&lt;/a&gt;&lt;/p&gt;
Second Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/v1583943678/_mmm/glasses.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/v1583943678/_mmm/glasses.png&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsk2uyxsqr4jk7k05d66c.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsk2uyxsqr4jk7k05d66c.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/fl_region_relative,g_adv_eyes,l__mmm:glasses,w_1.5/_mmm/finepeople.jpg" width="800" height="797"&gt;&lt;/a&gt;&lt;/p&gt;
Expected result



&lt;p&gt;For this challenge, we'll make use of Cloudinary's Advanced Facial Attribute Detection feature to smartly overlay glasses on top of every detected eye pair in the first baseline image.&lt;/p&gt;

&lt;p&gt;To do this, the overlay parameter, &lt;code&gt;l&lt;/code&gt;, is set to the public ID of the glasses image. We when activate Cloudinary's Advanced Facial Attribute Detection feature by setting the gravity parameter, &lt;code&gt;g&lt;/code&gt;, to &lt;code&gt;adv_eyes&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Lastly, we'll set the &lt;code&gt;region_relative&lt;/code&gt; flag with a 1.5 width. This effectively scales each glasses overlay to 150% of the detected eye pairs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/fl_region_relative,g_adv_eyes,l__mmm:glasses,w_1.5/_mmm/finepeople.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/fl_region_relative,g_adv_eyes,l__mmm:glasses,w_1.5/_mmm/finepeople.jpg&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 12 (March 12th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/cookbook/blur_or_pixelate_faces" rel="noopener noreferrer"&gt;Pixelate Face&lt;/a&gt; and &lt;a href="https://cloudinary.com/cookbook/create_your_own_duotone_filter" rel="noopener noreferrer"&gt;Duotone Filter&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczydpp724gu9t0k0pp95.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczydpp724gu9t0k0pp95.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/puppyface.jpg" width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;
Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/puppyface.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/puppyface.jpg&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpy93v6hgzaei6o5ffgfz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpy93v6hgzaei6o5ffgfz.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/e_pixelate_faces/e_grayscale/e_tint:50:red/_mmm/puppyface.jpg" width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;
Expected result



&lt;p&gt;This challenge is a combination of three effects: pixelate, grayscale and tint.&lt;/p&gt;

&lt;p&gt;To pixelate the face, we'll set the effect parameter, &lt;code&gt;e&lt;/code&gt;, to &lt;code&gt;pixelate_faces&lt;/code&gt;. This will detect every face in the image and add pixel squares over each one. The size of the squares can also be set using custom values.&lt;/p&gt;

&lt;p&gt;We then create a duotone filter using the &lt;code&gt;grayscale&lt;/code&gt; and &lt;code&gt;tint&lt;/code&gt; effects. We'll use a red tint and set its strength to 50.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/e_pixelate_faces/e_grayscale/e_tint:50:red/_mmm/puppyface.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/e_pixelate_faces/e_grayscale/e_tint:50:red/_mmm/puppyface.jpg&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 13 (March 13th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/product_updates/style_transfer_2_0" rel="noopener noreferrer"&gt;Style Transfer&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb2vebpk9fl54pwhxl0oi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb2vebpk9fl54pwhxl0oi.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/community.jpg" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;
First Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/community.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/community.jpg&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpiepfqrdqnhsl88msv3w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpiepfqrdqnhsl88msv3w.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/v1584104910/_mmm/moulin.jpg" width="500" height="333"&gt;&lt;/a&gt;&lt;/p&gt;
Second Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/v1584104910/_mmm/moulin.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/v1584104910/_mmm/moulin.jpg&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzvfu1a40slsq19rvg474.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzvfu1a40slsq19rvg474.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/w_1000,h_800,c_fill/e_style_transfer,l__mmm:moulin/_mmm/community.jpg" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;
Expected result



&lt;p&gt;For this challenge, we'll make use of Cloudinary's cool Neural Artworks feature to transfer the styles from the second baseline image onto the first baseline image. To do this, we'll set the effect parameter to &lt;code&gt;style_transfer&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;We'll also resize the image using the width and height parameters to get the same dimensions as the expected result.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/w_1000,h_800,c_fill/e_style_transfer,l__mmm:moulin/_mmm/community.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/w_1000,h_800,c_fill/e_style_transfer,l__mmm:moulin/_mmm/community.jpg&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 14 (March 14th)
&lt;/h2&gt;

&lt;p&gt;Recipe: &lt;a href="https://cloudinary.com/product_updates/outline_effect" rel="noopener noreferrer"&gt;Outline Effect&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9zh3ymp0oj4bmgfac52q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9zh3ymp0oj4bmgfac52q.png" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/bottomleaves.png" width="165" height="301"&gt;&lt;/a&gt;&lt;/p&gt;
Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/bottomleaves.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/bottomleaves.png&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyoq2ex0wy8kj8k9671tt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyoq2ex0wy8kj8k9671tt.png" alt="bottomleaves.png" width="307" height="443"&gt;&lt;/a&gt;&lt;/p&gt;
Expected result



&lt;p&gt;To recreate this rainbow-like pattern, we'll make use of the &lt;code&gt;outline&lt;/code&gt; effect. This effect, as the name implies, creates an outline around a transparent image.&lt;/p&gt;

&lt;p&gt;The outline effect has a default color of black. To create our own colors, we'll set the color parameter, &lt;code&gt;co&lt;/code&gt;, to a color of our choice.&lt;/p&gt;

&lt;p&gt;We can then create successive outline effect components to achieve the multi-colored outline in this challenge.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/e_outline,co_red/e_outline,co_rgb:FF7F00/e_outline,co_yellow/e_outline,co_rgb:00FF00/e_outline,co_blue/e_outline,co_rgb:4B0082/e_outline,co_rgb:9400D3/e_outline,co_red/e_outline,co_rgb:FF7F00/e_outline,co_yellow/e_outline,co_rgb:00FF00/e_outline,co_blue/e_outline,co_rgb:4B0082/e_outline,co_rgb:9400D3/_mmm/bottomleaves.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/e_outline,co_red/e_outline,co_rgb:FF7F00/e_outline,co_yellow/e_outline,co_rgb:00FF00/e_outline,co_blue/e_outline,co_rgb:4B0082/e_outline,co_rgb:9400D3/e_outline,co_red/e_outline,co_rgb:FF7F00/e_outline,co_yellow/e_outline,co_rgb:00FF00/e_outline,co_blue/e_outline,co_rgb:4B0082/e_outline,co_rgb:9400D3/_mmm/bottomleaves.png&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 15 (March 15th)
&lt;/h2&gt;

&lt;p&gt;Recipe: &lt;a href="https://cloudinary.com/blog/how_to_use_displacement_maps_to_transform_images" rel="noopener noreferrer"&gt;Displacement Mapping&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6d5t99agfewimvxjufad.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6d5t99agfewimvxjufad.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/v1584251882/_mmm/mug.jpg" width="690" height="458"&gt;&lt;/a&gt;&lt;/p&gt;
First Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/v1584251882/_mmm/mug.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/v1584251882/_mmm/mug.jpg&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8uafgfxy87dxepw3bro2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8uafgfxy87dxepw3bro2.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/v1584251791/_mmm/radial.jpg" width="200" height="50"&gt;&lt;/a&gt;&lt;/p&gt;
Second Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/v1584251791/_mmm/radial.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/v1584251791/_mmm/radial.jpg&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqyrzu2dr2sanfpit9p4s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqyrzu2dr2sanfpit9p4s.png" alt="https://res.cloudinary.com/cdemo/image/upload/v1584252577/_mmm/tweet.png" width="800" height="911"&gt;&lt;/a&gt;&lt;/p&gt;
Third Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/v1584252577/_mmm/tweet.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/v1584252577/_mmm/tweet.png&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85mip4bzhcm7zjx2tg1x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85mip4bzhcm7zjx2tg1x.png" alt="https://res.cloudinary.com/cdemo/image/upload/c_scale,w_320/c_pad,h_2.0,w_1.0/e_displace,l__mmm:radial,y_-9/e_trim/c_scale,u__mmm:mug,w_690,x_-1,a_vflip.180/_mmm/tweet.png" width="690" height="458"&gt;&lt;/a&gt;&lt;/p&gt;
Expected result



&lt;p&gt;One of Cloudinary's more robust transformations is the &lt;code&gt;displace&lt;/code&gt; effect, which applies another image as a displacement map to manipulate your base image in a variety of ways. The displacement mapping algorithm evaluates every pixel in the image map and then displaces the pixels in the base image based on the intensity of the corresponding image map pixels.&lt;/p&gt;

&lt;p&gt;For this challenge, we've been provided with a displacement template (second baseline image) which we are going to apply on the tweet image.&lt;/p&gt;

&lt;p&gt;This particular challenge is a good example of one that can be solved in various ways, so it'll be interesting to see how you approach it.&lt;/p&gt;

&lt;p&gt;Besides the displace effect, I'll also like to touch upon the &lt;code&gt;trim&lt;/code&gt; effect and angle parameter, &lt;code&gt;a&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The trim effect analyses the image and smartly trims off unused white-spaces.&lt;/p&gt;

&lt;p&gt;We apply the angle parameter on the mug to mirror the original mug. To achieve this, we'll flip it vertically at an angle of 180 by setting the angle parameter to &lt;code&gt;vflip.180&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/c_scale,w_320/c_pad,h_2.0,w_1.0/e_displace,l__mmm:radial,y_-9/e_trim/c_scale,u__mmm:mug,w_690,x_-1,a_vflip.180/_mmm/tweet.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/c_scale,w_320/c_pad,h_2.0,w_1.0/e_displace,l_&lt;em&gt;mmm:radial,y&lt;/em&gt;-9/e_trim/c_scale,u_&lt;em&gt;mmm:mug,w_690,x&lt;/em&gt;-1,a_vflip.180/_mmm/tweet.png&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 16 (March 16th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/product_updates/color_mapping_effect" rel="noopener noreferrer"&gt;Color Mapping&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjc13fnosahwgikpbm67x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjc13fnosahwgikpbm67x.png" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/handbag.png" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;
Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/handbag.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/handbag.png&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5qy5wdrbexlbdg4uo1z9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5qy5wdrbexlbdg4uo1z9.png" alt="https://res.cloudinary.com/cdemo/image/upload/e_replace_color:cyan:80:2b38aa/e_outline:15:200,co_orange/_mmm/handbag.png" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;
Expected result



&lt;p&gt;To complete this challenge, we'll make use of two effects: &lt;code&gt;outline&lt;/code&gt;, which we first saw in day 14 challenge, and &lt;code&gt;replace_color&lt;/code&gt;, which effectively replaces shades of predominant or custom colors in an image with shades of a different.&lt;/p&gt;

&lt;p&gt;Here's the syntax for replace_color effect: &lt;code&gt;e_replace_color:[TO_COLOR]:[THRESHOLD]:[FROM_COLOR]&lt;/code&gt;. In this case, we want to replace the color &lt;code&gt;blue&lt;/code&gt; with &lt;code&gt;cyan&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The syntax for outline effect is: &lt;code&gt;e_outline:[MODE]:[WIDTH]:[BLUR]&lt;/code&gt;. In day 14 challenge, we made use of the default values for the 3 parameters. For this challenge, we'll stick to the default value for mode (&lt;code&gt;inner&lt;/code&gt; and &lt;code&gt;outer&lt;/code&gt;), but we'll set custom values for both width and blur.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/e_replace_color:cyan:80:2b38aa/e_outline:15:200,co_orange/_mmm/handbag.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/e_replace_color:cyan:80:2b38aa/e_outline:15:200,co_orange/_mmm/handbag.png&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 17 (March 17th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: Image Overlay/Underlay&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rv1k5wb9rdwyt5xnvrs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3rv1k5wb9rdwyt5xnvrs.png" alt="https://t.co/6yI6Hy0DHU?amp=1" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;
First Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/v1584510574/_mmm/human.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/v1584510574/_mmm/human.png&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdfp2sn53mku3ummmk27.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdfp2sn53mku3ummmk27.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/v1584510559/_mmm/desert.jpg" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;
Second Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/v1584510559/_mmm/desert.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/v1584510559/_mmm/desert.jpg&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6dwq1nrx57loum2fd8a9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6dwq1nrx57loum2fd8a9.png" alt="https://res.cloudinary.com/cdemo/image/upload/w_800,f_auto,q_auto/u__mmm:desert,h_1000/_mmm/human.png" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;
Expected result



&lt;p&gt;Personally, I think there's an inside joke in today's challenge that I didn't get. For context, this is the only challenge with a title: "Zoom Change Background—Remote fun". I'm not quite sure what that's about or maybe it doesn't even mean anything, but if you get it, do let me know in the comments. :)&lt;/p&gt;

&lt;p&gt;So, on to the challenge.&lt;/p&gt;

&lt;p&gt;There are at least two ways we can solve this challenge. We could either overlay the baseball player on the desert or underlay the desert beneath the baseball player. Either way works just fine. &lt;/p&gt;

&lt;p&gt;The winner went with the underlay method and also made some adjustments to the dimensions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/w_800,f_auto,q_auto/u__mmm:desert,h_1000/_mmm/human.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/w_800,f_auto,q_auto/u__mmm:desert,h_1000/_mmm/human.png&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6os2mc7mrndm3lj3k0zz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6os2mc7mrndm3lj3k0zz.jpg" alt="Imgur" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The organizers of this challenge decided to step things up a notch by deviating from image transformation and manipulation to video! &lt;/p&gt;

&lt;p&gt;I'm writing this post on the 27th of March. There hasn't been any image challenge since the 17th, so I guess it's safe to say we'll be having video challenges for the rest of the month. &lt;em&gt;C'est bien&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;You might want to check out the Cloudinary documentation on &lt;a href="https://cloudinary.com/documentation/video_manipulation_and_delivery" rel="noopener noreferrer"&gt;Video Transformations&lt;/a&gt; before proceeding. Also, check out the doucmentation on &lt;a href="https://cloudinary.com/documentation/video_manipulation_and_delivery#resizing_and_cropping_videos" rel="noopener noreferrer"&gt;Resizing and Cropping Videos&lt;/a&gt;, as we'll likely be doing a lot of that and the documentation does a perfect job of outlining what each crop mode does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day 18 (March 18th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/documentation/video_manipulation_and_delivery#concatenate_videos_with_images" rel="noopener noreferrer"&gt;Concatenate Videos with Images&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhdjajcns9uab6oftwvyf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhdjajcns9uab6oftwvyf.png" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/washyourhands.png" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;
Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/washyourhands.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/washyourhands.png&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjgtwc4k1ljn6dgpj3f4s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjgtwc4k1ljn6dgpj3f4s.png" alt="Imgur" width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;
Baseline Video: &lt;a href="https://res.cloudinary.com/cdemo/video/upload/_mmm/washhands.mp4" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/video/upload/_mmm/washhands.mp4&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1912ot2wb0xa9haqswjh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1912ot2wb0xa9haqswjh.png" alt="https://gblobscdn.gitbook.com/assets%2F-M1J0YPWDmPTjECch_HO%2F-M2iP2bLrQ18auYKMD8H%2F-M2igLVlSGAIswcEMTx8%2FScreen%20Shot%202020-03-18%20at%206.29.06%20PM.png?alt=media&amp;amp;token=afec096f-87cb-4cc6-97c7-e56966009667" width="800" height="639"&gt;&lt;/a&gt;&lt;/p&gt;
Expected result



&lt;p&gt;For this challenge, we want to concatenate the image named &lt;code&gt;washyourhands&lt;/code&gt; to the start of the video named &lt;code&gt;washhands&lt;/code&gt; for a duration of 5 seconds (both the video and image will also be scaled to a width of 500 pixels and a height of 400 pixels for uniformity).&lt;/p&gt;

&lt;p&gt;We'll achieve this by using the following combination of parameters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overlay, &lt;code&gt;l&lt;/code&gt;, to specify the name of the image,&lt;/li&gt;
&lt;li&gt;splice flag, &lt;code&gt;fl_splice&lt;/code&gt;, to indicate that the image should be concatenated on to the container video and not added as an overlay,&lt;/li&gt;
&lt;li&gt;duration parameter, &lt;code&gt;du&lt;/code&gt;, to specify the amount of time in seconds to display the image,&lt;/li&gt;
&lt;li&gt;start_offset set to 0, &lt;code&gt;so_0&lt;/code&gt;, to concatenate the image at the beginning of the video instead of at the end.&lt;/li&gt;
&lt;li&gt;layer_apply flag, &lt;code&gt;fl_layer_apply&lt;/code&gt;, to indicate that the above parameters are applied to the image with the overlay parameter and not the base video.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/video/upload/w_500,h_400/w_500,h_400,l__mmm:washyourhands,fl_splice,du_5/so_0,fl_layer_apply/_mmm/washhands.mp4" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/video/upload/w_500,h_400/w_500,h_400,l__mmm:washyourhands,fl_splice,du_5/so_0,fl_layer_apply/_mmm/washhands.mp4&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 19 (March 19th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/documentation/video_manipulation_and_delivery#pad_with_blurred_video_background" rel="noopener noreferrer"&gt;Blurred Video Background&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8cel0b7m6zoj0hu7y5oq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8cel0b7m6zoj0hu7y5oq.png" alt="Imgur" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;
Baseline Video: &lt;a href="https://res.cloudinary.com/cdemo/video/upload/_mmm/baseball.mp4" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/video/upload/_mmm/baseball.mp4&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5mobi55btcdv5j2fuiwz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5mobi55btcdv5j2fuiwz.png" alt="https://gblobscdn.gitbook.com/assets%2F-M1J0YPWDmPTjECch_HO%2F-M2oAYwJ4noOoVq1S26F%2F-M2oAdpYPJg3AySJA2ql%2FScreen%20Shot%202020-03-19%20at%208.04.06%20PM.png?alt=media&amp;amp;token=d659cc8c-ccc2-4535-bfc6-6c108b20dad1" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;
Expected result



&lt;p&gt;Right off the bat (pun intended), the differences between the two videos are quite clear. The aspect ratio of the base video has been switched to a square and a blurred version of the same video has been added to fill out the cropped space.&lt;/p&gt;

&lt;p&gt;To achieve this, we resize the base video to square proportions and apply a &lt;code&gt;fill&lt;/code&gt; crop mode. We then add a background by setting the background parameter, &lt;code&gt;b&lt;/code&gt;, to &lt;code&gt;blurred&lt;/code&gt;, with a blur intensity of 400 and a brightness value of 15.&lt;/p&gt;

&lt;p&gt;If we leave it this way, the blurred background will remain invisible behind the video with some funny things happening with the video's duration. We don't want that. To stretch it out, we'll adjust it's dimensions to a width of 600 pixels and height of 320 pixels with a &lt;code&gt;pad&lt;/code&gt; crop mode.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/video/upload/w_300,h_300,c_fill/c_pad,h_320,w_600,b_blurred:400:15/_mmm/baseball.mp4" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/video/upload/w_300,h_300,c_fill/c_pad,h_320,w_600,b_blurred:400:15/_mmm/baseball.mp4&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 20 (March 20th)
&lt;/h2&gt;

&lt;p&gt;Recipe: &lt;a href="https://cloudinary.com/documentation/video_manipulation_and_delivery#fade_in_and_out" rel="noopener noreferrer"&gt;Fade In, Fade Out&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcdb91ydsghdnuu1w0ldb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcdb91ydsghdnuu1w0ldb.png" alt="Imgur" width="505" height="865"&gt;&lt;/a&gt;&lt;/p&gt;
Baseline Video: &lt;a href="https://res.cloudinary.com/cdemo/video/upload/_mmm/geng.mp4" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/video/upload/_mmm/geng.mp4&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl0zi9j03p7fv7k4x32s1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl0zi9j03p7fv7k4x32s1.png" alt="https://gblobscdn.gitbook.com/assets%2F-M1J0YPWDmPTjECch_HO%2F-M2swlYexLH1O5A8u5s4%2F-M2t4_x-8xz10BKTKNNe%2FScreen%20Shot%202020-03-20%20at%206.55.33%20PM.png?alt=media&amp;amp;token=18a25ea7-c2cc-41c6-87b6-96d15d0eca37" width="800" height="1384"&gt;&lt;/a&gt;&lt;/p&gt;
Expected result



&lt;p&gt;The text overlay effect we last saw in Day 8 makes a comeback in this challenge with an added superpower: the ability to step in and out of a video at specified times. Cool, right?&lt;/p&gt;

&lt;p&gt;We achieve this using the start offset, &lt;code&gt;so&lt;/code&gt;, and end offset, &lt;code&gt;eo&lt;/code&gt;, parameters. We'll set both to the times we want the text overlay to step in and out of the video respectively.&lt;/p&gt;

&lt;p&gt;We'll also apply two fade effects, &lt;code&gt;e_fade&lt;/code&gt;, to the video: one at the beginning and another at the end. The effect accepts a parameter that determines the duration of the fade effect in milliseconds, with a positive value for fading in at the beginning of the video, and a negative value for fading out at the end of the video.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/video/upload/l_text:arial_60:Geng%20Of%20The%20Most%20High,g_north,y_80,so_2,eo_5/e_fade:2500/e_fade:-5000/_mmm/geng.mp4" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/video/upload/l_text:arial_60:Geng Of The Most High,g_north,y_80,so_2,eo_5/e_fade:2500/e_fade:-5000/_mmm/geng.mp4&lt;/a&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;If you made it this far, trust me, you can make it through anything!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As always, please experiment with other recipes in the cookbook and feel free to share your stunning creations in the comments below!&lt;/p&gt;

&lt;p&gt;Watch out for the final part!&lt;/p&gt;

&lt;p&gt;Cheers!&lt;/p&gt;

</description>
      <category>cloudinary</category>
      <category>media</category>
      <category>web</category>
    </item>
    <item>
      <title>March Media Madness Takeaways Part I [Yet Another Cloudinary Blog Post]</title>
      <dc:creator>Shazomii</dc:creator>
      <pubDate>Thu, 19 Mar 2020 10:06:04 +0000</pubDate>
      <link>https://dev.to/shazomii/march-media-madness-takeaways-part-i-yet-another-cloudinary-blog-post-3m84</link>
      <guid>https://dev.to/shazomii/march-media-madness-takeaways-part-i-yet-another-cloudinary-blog-post-3m84</guid>
      <description>&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1234071616562266112-657" src="https://platform.twitter.com/embed/Tweet.html?id=1234071616562266112"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1234071616562266112-657');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1234071616562266112&amp;amp;theme=dark"
  }



 &lt;br&gt;
&lt;em&gt;&lt;a href="https://cloudinary.gitbook.io/march-media-madness-gtt-2020/" rel="noopener noreferrer"&gt;#MarchMediaMadness&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is the first of a 3-part series I'll be writing about the &lt;a href="https://cloudinary.gitbook.io/march-media-madness-gtt-2020/" rel="noopener noreferrer"&gt;31 days media challenge&lt;/a&gt; (March 1st - 31st, 2020), appropriately titled &lt;strong&gt;March Media Madness&lt;/strong&gt;, being run by &lt;a href="https://twitter.com/unicodeveloper" rel="noopener noreferrer"&gt;@unicodeveloper&lt;/a&gt;, an open source evangelist, and &lt;a href="https://cloudinary.com" rel="noopener noreferrer"&gt;Cloudinary&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I'm writing this series essentially to solidify the knowledge I've gained so far of Cloudinary's robust media transformation techniques and hoping someone out there finds it helpful as well.&lt;/p&gt;

&lt;p&gt;I have included a link to the Cloudinary Cookbook recipe related to each day's challenge for you to check out more media magic!&lt;/p&gt;

&lt;p&gt;Let's jump right in!&lt;/p&gt;

&lt;p&gt;Part one covers the first 10 days. &lt;/p&gt;




&lt;h2&gt;
  
  
  Day 1 (March 1st)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/cookbook/add_a_border_to_images" rel="noopener noreferrer"&gt;Border&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiza6qc303j9idhucg49t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiza6qc303j9idhucg49t.png" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/cld.png" width="800" height="204"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/cld.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/cld.png&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9rtk650av5cajuue3fyf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9rtk650av5cajuue3fyf.png" alt="image.png" width="800" height="209"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Expected result&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To achieve this transformation, we'll use the &lt;strong&gt;border&lt;/strong&gt; parameter, &lt;code&gt;bo&lt;/code&gt;. This parameter allows us to add a border around the image with the ability to dynamically customize the border's properties (width, style, color, opacity).&lt;/p&gt;

&lt;p&gt;Let's transform the baseline image by adding a 5px solid red border to its URL:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/bo_5px_solid_red/_mmm/cld.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/bo_5px_solid_red/_mmm/cld.png&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 2 (March 2nd)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/cookbook/add_a_text_to_an_image" rel="noopener noreferrer"&gt;Text Overlay&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiza6qc303j9idhucg49t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiza6qc303j9idhucg49t.png" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/cld.png" width="800" height="204"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Baseline Image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/cld.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/cld.png&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgths0765yn48i48g756d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgths0765yn48i48g756d.png" alt="https://gblobscdn.gitbook.com/assets%2F-M1J0YPWDmPTjECch_HO%2F-M1NJpc41i4PJIeNbmFD%2F-M1NJz7JG0QXX8j1a5Eh%2Fimage.png?alt=media&amp;amp;token=70d06dc4-36a1-4f05-854b-77280d86d9c5" width="800" height="204"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Expected result&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;&lt;em&gt;overlay&lt;/em&gt;&lt;/strong&gt; parameter, &lt;code&gt;l&lt;/code&gt;, is used to add text or image on top of an existing image.&lt;/p&gt;

&lt;p&gt;For this challenge, we'll set the overlay parameter to &lt;code&gt;text&lt;/code&gt; and customize the text by setting its font family, size and weight. Black is the default color so we don't have to set the color.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/l_text:arial_30_bold:March%20Media%20Madness/_mmm/cld.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/l_text:arial_30_bold:March Media Madness/_mmm/cld.png&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 3 (March 3rd)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/product_updates/cartoonify_effect" rel="noopener noreferrer"&gt;Cartoonify&lt;/a&gt; and &lt;a href="https://cloudinary.com/cookbook/add_a_shadow_effect_to_an_image" rel="noopener noreferrer"&gt;Shadow&lt;/a&gt; effects&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiza6qc303j9idhucg49t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiza6qc303j9idhucg49t.png" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/cld.png" width="800" height="204"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/cld.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/cld.png&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85kq0ycebuxcz3sxvc9u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85kq0ycebuxcz3sxvc9u.png" alt="https://res.cloudinary.com/cdemo/image/upload/e_cartoonify/e_shadow/_mmm/cld.png" width="800" height="209"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Expected result&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This challenge contains two transformations: a cartoon-like effect and a box shadow effect.&lt;/p&gt;

&lt;p&gt;The cartoon-like effect is achieved by setting the effect parameter, &lt;code&gt;e&lt;/code&gt;, to &lt;code&gt;cartoonify&lt;/code&gt; while the shadow effect is achieved by setting the effect parameter to &lt;code&gt;shadow&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;By modifying the base URL with these effects, we are able to get the expected result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/e_cartoonify/e_shadow/_mmm/cld.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/e_cartoonify/e_shadow/_mmm/cld.png&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 4 (March 4th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/documentation/image_transformations?query=blur&amp;amp;c_query=Applying%20image%20effects%20and%20filters%20%E2%80%BA%20Blurring,%20pixelating%20and%20sharpening%20effects#blurring_pixelating_and_sharpening_effects" rel="noopener noreferrer"&gt;Image Blur&lt;/a&gt; and &lt;a href="https://cloudinary.com/cookbook/text_overlay_positioning" rel="noopener noreferrer"&gt;Text Overlay Positioning&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiza6qc303j9idhucg49t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiza6qc303j9idhucg49t.png" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/cld.png" width="800" height="204"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/cld.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/cld.png&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fcdemo%2Fimage%2Fupload%2Fe_blur%3A300%2Fl_text%3Aarial_30_bold%3ATwitter%2520Challenge%2Cg_south_east%2F_mmm%2Fcld.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fcdemo%2Fimage%2Fupload%2Fe_blur%3A300%2Fl_text%3Aarial_30_bold%3ATwitter%2520Challenge%2Cg_south_east%2F_mmm%2Fcld.png" alt="https://res.cloudinary.com/cdemo/image/upload/e_blur:300/l_text:arial_30_bold:Twitter%20Challenge,g_south_east/_mmm/cld.png&amp;lt;br&amp;gt;
" width="800" height="204"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Expected result&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let's begin with the text overlay as we have discussed it previously in day two's challenge. The main difference with today's challenge is that the text is positioned in the bottom right corner of the image rather than the center.&lt;/p&gt;

&lt;p&gt;This positioning is achieved using the gravity parameter, &lt;code&gt;g&lt;/code&gt;. The gravity parameter uses the compass points to place an overlay anywhere on the specified image. The text in this challenge is located in the south-east corner of the image so we'll use &lt;code&gt;g_south_east&lt;/code&gt; in the URL. &lt;/p&gt;

&lt;p&gt;The second transformation blurs out the underlying image by setting the effect parameter to &lt;code&gt;blur&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/e_blur:300/l_text:arial_30_bold:Twitter%20Challenge,g_south_east/_mmm/cld.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/e_blur:300/l_text:arial_30_bold:Twitter Challenge,g_south_east/_mmm/cld.png&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;PS: We didn't use the gravity parameter for day two's challenge because the default overlay positioning is &lt;code&gt;center&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Day 5 (March 5th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/cookbook/resize_an_image" rel="noopener noreferrer"&gt;Resize Image&lt;/a&gt; and &lt;a href="https://cloudinary.com/blog/adding_watermarks_credits_badges_and_text_overlays_to_images" rel="noopener noreferrer"&gt;Text/Image Overlay Positioning&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6lrpsjuecwn9dsnb301j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6lrpsjuecwn9dsnb301j.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/envelope.jpg" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;First baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/envelope.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/envelope.jpg&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgzn14esoobiuy7hd8q90.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgzn14esoobiuy7hd8q90.png" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/opensource.png" width="512" height="242"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Second baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/opensource.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/opensource.png&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2kkd3nr03y4muq8oq4s1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2kkd3nr03y4muq8oq4s1.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/w_900,c_fit,l_text:Arial_50_bold:Open%20Source%20is%20a%20habit.%20Nurturing%20this%20habit%20changes%20your%20identity%20as%20a%20developer.,x_25,y_25/l_text:Arial_50_bold:-%20Prosper%20Otemuyiwa,x_25,y_225/l__mmm:opensource,g_south_west/_mmm/envelope.jpg" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Expected result&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is a particularly interesting challenge as it involves most of the recipes we learned from previous challenges coupled with some minor additions. I will dwell more on these additions.&lt;/p&gt;

&lt;p&gt;We begin by resizing the first baseline image. To preserve the aspect ratio of the image, Cloudinary allows us to use either the height, &lt;code&gt;h&lt;/code&gt;, or width, &lt;code&gt;w&lt;/code&gt;, parameter, but not both. We'll set the width parameter to the desired value in pixels.&lt;/p&gt;

&lt;p&gt;We also need to set the &lt;a href="https://cloudinary.com/documentation/image_transformations#crop_modes" rel="noopener noreferrer"&gt;crop mode&lt;/a&gt; after resizing the image. We'll use the &lt;code&gt;fit&lt;/code&gt; crop mode which keeps as much detail of the original image as possible.&lt;/p&gt;

&lt;p&gt;Two types of overlays are in play with this challenge: a text overlay, which we saw in previous challenges, and an image overlay.&lt;/p&gt;

&lt;p&gt;To apply the image overlay, the overlay parameter, &lt;code&gt;l&lt;/code&gt;, is set to the public ID of the image to be used. In cases where an image has parent directories, a colon, &lt;code&gt;:&lt;/code&gt;, is used to separate each level in the file tree.&lt;/p&gt;

&lt;p&gt;Finally, we implement custom positions for different overlays by setting their respective &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; offset parameters as required.&lt;/p&gt;

&lt;p&gt;Combining all of these transformations gives us the URL below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/w_900,c_fit,l_text:Arial_50_bold:Open%20Source%20is%20a%20habit.%20Nurturing%20this%20habit%20changes%20your%20identity%20as%20a%20developer.,x_25,y_25/l_text:Arial_50_bold:-%20Prosper%20Otemuyiwa,x_25,y_225/l__mmm:opensource,g_south_west/_mmm/envelope.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/w_900,c_fit,l_text:Arial_50_bold:Open Source is a habit. Nurturing this habit changes your identity as a developer.,x_25,y_25/l_text:Arial_50_bold:- Prosper Otemuyiwa,x_25,y_225/l__mmm:opensource,g_south_west/_mmm/envelope.jpg&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 6 (March 6th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/blog/how_to_dynamically_distort_images_to_fit_your_graphic_design" rel="noopener noreferrer"&gt;Distortion Effect&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvpfw1q0q0fk6oz5g753.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvpfw1q0q0fk6oz5g753.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/poster.jpg" width="795" height="1178"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;First baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/poster.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/poster.jpg&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fna1qls9sq8w9oz45yipg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fna1qls9sq8w9oz45yipg.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/discbox.jpg" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Second baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/discbox.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/discbox.jpg&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzrfr6r9tj442s2p5qwl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzrfr6r9tj442s2p5qwl.jpg" alt="https://gblobscdn.gitbook.com/assets%2F-M1J0YPWDmPTjECch_HO%2F-M1ktgkjdBMs4S79J_Kv%2F-M1leQF96qRT8ztPzypQ%2Fdiscboxyes.jpg?alt=media&amp;amp;token=abc200fe-56f4-482c-ae1b-773910d85bc2" width="400" height="422"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Expected result&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The distort effect transforms a given image into a quadilateral shape by assigning new coordinates to each of its four corners. The coordinates assignment is done in a clockwise direction starting from the top left corner of the image. Each pixel of the image is then mapped in proportion to the new shape of the quadilateral. &lt;/p&gt;

&lt;p&gt;Both baseline images are also resized so as to better fit each other.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/w_400,c_scale/l__mmm:poster,w_300,h_422,e_distort:55:55:195:20:195:350:55:320/_mmm/discbox.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/w_400,c_scale/l__mmm:poster,w_300,h_422,e_distort:55:55:195:20:195:350:55:320/_mmm/discbox.jpg&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 7 (March 7th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/documentation/image_transformations?query=under&amp;amp;c_query=Image%20and%20text%20overlays%20%E2%80%BA%20Adding%20image%20underlays#adding_image_underlays" rel="noopener noreferrer"&gt;Image Underlay&lt;/a&gt; and &lt;a href="https://cloudinary.com/cookbook/convert_image_to_grayscale" rel="noopener noreferrer"&gt;Grayscale/Gradient Fade&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzv8wqy3g6ul8ary9x13z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzv8wqy3g6ul8ary9x13z.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/kqa488dfzvsetpvglq6n.jpg" width="800" height="1143"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/kqa488dfzvsetpvglq6n.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/kqa488dfzvsetpvglq6n.jpghttps://res.cloudinary.com/cdemo/image/upload/_mmm/kqa488dfzvsetpvglq6n.jpg&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jefcdsdi7g0sw6zpri6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jefcdsdi7g0sw6zpri6.jpg" alt="https://gblobscdn.gitbook.com/assets%2F-M1J0YPWDmPTjECch_HO%2F-M1sAXQZaye9b-G9Q-v4%2F-M1sGOJaN7guaAveGpFF%2Fkqa488dfzvsetpvglq6n.jpg?alt=media&amp;amp;token=8cd105ed-5786-4129-9441-94fc6ca4e474" width="800" height="1143"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Expected result&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This challenge requires us to use the gradient fade effect to create a smooth transition from grayscale to color.&lt;/p&gt;

&lt;p&gt;We achieve this by first duplicating the baseline image using the underlay parameter, &lt;code&gt;u&lt;/code&gt;, and then applying the grayscale effect. We then apply a gradient fade effect to the original  base image with an &lt;code&gt;x&lt;/code&gt; offset parameter set to the position where we want the fade from the underlying to overlying image to occur.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/e_gradient_fade,x_0.9/u__mmm:kqa488dfzvsetpvglq6n,e_grayscale/_mmm/kqa488dfzvsetpvglq6n.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/e_gradient_fade,x_0.9/u__mmm:kqa488dfzvsetpvglq6n,e_grayscale/_mmm/kqa488dfzvsetpvglq6n.jpg&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 8 (March 8th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/cookbook/use_images_as_text_textures" rel="noopener noreferrer"&gt;Image as Text Texture&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuecwiex08fyy9n97vvid.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuecwiex08fyy9n97vvid.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/freshcoloredwater.jpg" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/freshcoloredwater.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/freshcoloredwater.jpg&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8705bqviyyjksbjqxinr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8705bqviyyjksbjqxinr.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/f_png/w_800/l_text:Arial_250_bold:Water,fl_cutter,e_shadow/_mmm/freshcoloredwater.jpg" width="699" height="192"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Expected result&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For this challenge, we'll be creating a text cutout from the given baseline image.&lt;/p&gt;

&lt;p&gt;First, we'll dynamically add a text overlay with our desired text's parameters (font family: Arial, size: 250px, weight: bold) and then add a shadow effect.&lt;/p&gt;

&lt;p&gt;To achieve the cutout style, we'll use the flags parameter, &lt;code&gt;fl&lt;/code&gt;, and set it to &lt;code&gt;cutter&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Note that the final image has no background. To achieve this, we'll convert the baseline jpg image to a png format by using the fetch format parameter, &lt;code&gt;f&lt;/code&gt;, and setting it to &lt;code&gt;png&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Finally, we set the image width to the required value and end up with the expected result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/f_png/w_800/l_text:Arial_250_bold:Water,fl_cutter,e_shadow/_mmm/freshcoloredwater.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/f_png/w_800/l_text:Arial_250_bold:Water,fl_cutter,e_shadow/_mmm/freshcoloredwater.jpg&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 9 (March 9th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/documentation/fetch_remote_images#remote_image_fetch_url" rel="noopener noreferrer"&gt;Remote Image Fetch&lt;/a&gt; and &lt;a href="https://cloudinary.com/cookbook/image_rotation" rel="noopener noreferrer"&gt;Image Rotation&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9k66ayzmcho6qc9av3t.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9k66ayzmcho6qc9av3t.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/v1583787800/_mmm/prosper.jpg" width="800" height="1066"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;First baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/v1583787800/_mmm/prosper.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/v1583787800/_mmm/prosper.jpg&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz8ojo2bvvlb3we7fmiyh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz8ojo2bvvlb3we7fmiyh.png" alt="https://res.cloudinary.com/cdemo/image/upload/v1583425593/_mmm/opensource.png" width="512" height="242"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Second baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/v1583425593/_mmm/opensource.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/v1583425593/_mmm/opensource.png&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9a0xwrup306b9alsbhju.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9a0xwrup306b9alsbhju.png" alt="https://gblobscdn.gitbook.com/assets%2F-M1J0YPWDmPTjECch_HO%2F-M20IBZjSKi3H-QWhH0k%2F-M20INA5qY9pN65N3TTr%2Fopensource.png?alt=media&amp;amp;token=a1cb54af-b101-4b98-84b2-66d67043a3c0" width="800" height="1066"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Expected result&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Cloudinary's image transformation goodness is not by any means limited to images uploaded to Cloudinary. We can also transform images from remote locations. Cloudinary allows us to do this using the &lt;code&gt;fetch&lt;/code&gt; feature. Two differences to note in comparison with the upload feature we've used in previous challenges are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;upload&lt;/code&gt; is replaced with &lt;code&gt;fetch&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The image public ID is replaced with a full link to the remote image.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In our case, the image we're fetching remotely is the 'OS' watermark (opensource.png) which is ironically located on Cloudinary.&lt;/p&gt;

&lt;p&gt;Next, we resize the image and set its crop mode to &lt;code&gt;pad&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;We then rotate the image using the angle parameter, &lt;code&gt;a&lt;/code&gt;, and set its value to -35.&lt;/p&gt;

&lt;p&gt;We are now going to perform a sandwich maneuver to it by add using the first baseline image as both an overlay and underlay to give it a transparent effect. [&lt;em&gt;Alternatively, we can use the opacity parameter, &lt;code&gt;o&lt;/code&gt;, on the remote image to give it the same effect&lt;/em&gt;].&lt;/p&gt;

&lt;p&gt;Finally, we adjust the x and y offsets of the first baseline image to position it where we want.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/fetch/c_pad/w_100,a_-35/u__mmm:prosper,y_115,x_-100,e_overlay/q_auto:good/https://res.cloudinary.com/cdemo/image/upload/_mmm/opensource.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/fetch/c_pad/w_100,a_-35/u_&lt;em&gt;mmm:prosper,y_115,x&lt;/em&gt;-100,e_overlay/q_auto:good/https://res.cloudinary.com/cdemo/image/upload/_mmm/opensource.png&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 10 (March 10th)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recipe: &lt;a href="https://cloudinary.com/cookbook/custom_shapes_cropping" rel="noopener noreferrer"&gt;Custom Shape Cropping&lt;/a&gt; and &lt;a href="https://cloudinary.com/cookbook/turn_your_pictures_in_to_old_photographs" rel="noopener noreferrer"&gt;Vintage Photos&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxr9shvpqyvk5md13zfdx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxr9shvpqyvk5md13zfdx.jpg" alt="https://res.cloudinary.com/cdemo/image/upload/_mmm/edencartoon.jpg" width="800" height="1066"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;First baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/_mmm/edencartoon.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/_mmm/edencartoon.jpg&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomi3avuvy87ijbu20sh6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomi3avuvy87ijbu20sh6.png" alt="https://res.cloudinary.com/cdemo/image/upload/v1583824361/_mmm/roughtornmaterial.png" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Second baseline image: &lt;a href="https://res.cloudinary.com/cdemo/image/upload/v1583824361/_mmm/roughtornmaterial.png" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/v1583824361/_mmm/roughtornmaterial.png&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjdx00zidw0yqy07ciqa1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjdx00zidw0yqy07ciqa1.jpg" alt="https://gblobscdn.gitbook.com/assets%2F-M1J0YPWDmPTjECch_HO%2F-M22Dy3p4LxqFnqvHnM0%2F-M22LY7qPmeUPnLJEU9s%2Fedencartoontransform.jpg?alt=media&amp;amp;token=ff7c63f0-d639-4489-aa0f-a5566a816eb5" width="800" height="1066"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Expected result&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We begin by cropping the first baseline image to the shape of the second baseline image (mask), a process known as masking.&lt;/p&gt;

&lt;p&gt;We achieve this by setting the overlay parameter to the public ID of the mask image, setting the flag parameter to &lt;code&gt;cutter&lt;/code&gt; and also setting another flag parameter to &lt;code&gt;relative&lt;/code&gt;. The relative flag allows us to mirror the size of the baseline image.&lt;/p&gt;

&lt;p&gt;In order to get the vintage effect, we'll add the parchment as an overlay and give it a semi-transparent effect by adjusting the value of the opacity parameter, &lt;code&gt;o&lt;/code&gt;, as required. We'll again need to set the flag parameter to relative so as to keep in line with the image proportion.&lt;/p&gt;

&lt;p&gt;Finally, we set the width of the image to obtain the expected result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/cdemo/image/upload/w_1000/l__mmm:roughtornmaterial,w_1.0,h_1.0,fl_relative,fl_cutter/l__mmm:roughtornmaterial,w_1.0,h_1.0,fl_relative,o_40/_mmm/edencartoon.jpg" rel="noopener noreferrer"&gt;https://res.cloudinary.com/cdemo/image/upload/w_1000/l_&lt;em&gt;mmm:roughtornmaterial,w_1.0,h_1.0,fl_relative,fl_cutter/l&lt;/em&gt;_mmm:roughtornmaterial,w_1.0,h_1.0,fl_relative,o_40/_mmm/edencartoon.jpg&lt;/a&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;An important point to note is that we can achieve similar results to the ones listed above by taking completely different approaches. I'm excited to see what approach you take.&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Catch you in part two. In the meantime, feel free to experiment with more recipes. 🚀🚀&lt;/p&gt;

</description>
      <category>cloudinary</category>
      <category>media</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
