<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Cloudinary Blog</provider_name><provider_url>https://cloudinary.com/blog</provider_url><title>Image Optimization with Cloudinary</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="IQlKqHFRtF"&gt;&lt;a href="https://cloudinary.com/blog/guest_post/image-optimization-with-cloudinary/"&gt;Image Optimization with Cloudinary&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://cloudinary.com/blog/guest_post/image-optimization-with-cloudinary/embed#?secret=IQlKqHFRtF" width="600" height="338" title="&#x201C;Image Optimization with Cloudinary&#x201D; &#x2014; Cloudinary Blog" data-secret="IQlKqHFRtF" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
/* ]]&gt; */
&lt;/script&gt;
</html><thumbnail_url>https://res.cloudinary.com/cloudinary-marketing/images/v1681926089/Web_Assets/blog/ea3d89cb34fd09734cb154f171b7b737ac0635bc-1280x720-1_27857cb41e/ea3d89cb34fd09734cb154f171b7b737ac0635bc-1280x720-1_27857cb41e-png?_i=AA</thumbnail_url><thumbnail_width>1280</thumbnail_width><thumbnail_height>720</thumbnail_height><description>In this article, we'll look at how to optimize images for various screen sizes using the srcSet and sizes HTML attributes by building a simple photo album application with React. We will also take advantage of Cloudinary's URL transformation feature to automatically generate images of different sizes without duplicating or modifying the images for each screen size.</description><author_url>https://cloudinary.com/blog/author/ifeoma-imoh</author_url><author_name>Ifeoma Imoh</author_name></oembed>
