{"id":31906,"date":"2023-11-29T07:00:00","date_gmt":"2023-11-29T15:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=31906"},"modified":"2025-10-26T14:14:47","modified_gmt":"2025-10-26T21:14:47","slug":"5-ways-transform-images-svelte-online-store","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store","title":{"rendered":"5 Ways to Transform Images in Svelte for Enhancing Your Online Store"},"content":{"rendered":"\n<p>In this guide, we aim to enhance the aesthetics and user experience of your online store with five key techniques that utilize the power of Svelte, a modern web-framework, and Cloudinary, an image and video API solution. Jump right into the action with hands-on examples present in our <a href=\"https:\/\/github.com\/lelouchB\/cloudinary-svelte-demo\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Repo<\/a>, or explore these techniques live <a href=\"https:\/\/cloudinary-svelte-demo.vercel.app\/\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Unseen Impact of E-commerce<\/h2>\n\n\n\n<p>Gone are the days when one had to physically venture to shops. E-commerce has drastically remodeled how we purchase goods. From groceries and clothing to books and transportation, e-commerce caters to pretty much all consumer demands. This shift is a testament to the convenience offered by the online shopping experience, available around the clock from anywhere globally.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Critical Role of Images in Online Shopping<\/h2>\n\n\n\n<p>Picture this: a web-store with a detailed write-up about their premium quality shoes, but without any accompanying images. Regardless of how engaging your text might be, the lack of visual confirmation could deter potential customers. This anecdote depicts the importance of high-resolution images in an e-commerce platform. The first visualization of a product significantly contributes to the customer&#8217;s purchasing decision. Images aren&#8217;t just ornamental additions; they serve as an instigator to potential sales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Power-Packed Combination: Svelte and Cloudinary<\/h2>\n\n\n\n<p>Amid rising competition, prioritizing areas such as performance optimization, accessibility, SEO management, scalability, security, and adherence to web standards is necessary for staying afloat. Here&#8217;s where building an online store with <a href=\"https:\/\/svelte.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">Svelte<\/a> proves beneficial. It offers features designed to enhance user engagement, such as reactivity, server-side rendering, no virtual DOM, and SEO metadata management. But what is e-commerce without top-notch visuals?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Techniques to Optimize Images on Your Online Store<\/h2>\n\n\n\n<p>Creating enticing visuals can be an exhaustive process, and to optimize it, we use Cloudinary along with Svelte for e-commerce. Cloudinary aids us in managing and transforming images, creating a visually delightful experience for the user.<\/p>\n\n\n\n<p>We&#8217;ll continue by exploring five critical techniques.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Dynamic Cropping and Resizing<\/h3>\n\n\n\n<p>Online stores often face the challenge of displaying product images of various dimensions and orientations while maintaining a consistent layout for accessibility and SEO purposes.<\/p>\n\n\n\n<p>In the dummy products array, some images are portraits, while some are landscapes. Such differences in layouts aren&#8217;t best for an optimized user experience.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"584\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-2\/5_Ways_Transform_Images_Svelte-Blog-2.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_584,c_scale\/f_auto,q_auto\/v1701214158\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-2\/5_Ways_Transform_Images_Svelte-Blog-2.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31911\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214158\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214158\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-2\/5_Ways_Transform_Images_Svelte-Blog-2.png?_i=AA 4901w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214158\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-2\/5_Ways_Transform_Images_Svelte-Blog-2.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214158\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-2\/5_Ways_Transform_Images_Svelte-Blog-2.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214158\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-2\/5_Ways_Transform_Images_Svelte-Blog-2.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214158\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-2\/5_Ways_Transform_Images_Svelte-Blog-2.png?_i=AA 1536w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214158\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-2\/5_Ways_Transform_Images_Svelte-Blog-2.png?_i=AA 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Dynamic cropping and resizing allow us to present images in a structured and uniform manner, regardless of their original orientation or size.<\/p>\n\n\n\n<p>You can show a list of products like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\">{#each products as { name, id, image, price, slug, sale }, index (id)}\n\t<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"w-full h-full rounded-lg overflow-hidden bg-&#91;#F0EFEB]\"<\/span>&gt;<\/span>\n\t\t<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">a<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">{<\/span>`\/<span class=\"hljs-attr\">product<\/span>\/${<span class=\"hljs-attr\">slug<\/span>}`}&gt;<\/span>\n\t\t\t<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">CldImage<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">{image}<\/span> <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">{name}<\/span> \/&gt;<\/span>\n\t\t <span class=\"hljs-comment\">&lt;!-- Other Product Info --&gt;<\/span>\n\t\t<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">a<\/span>&gt;<\/span>\n\t<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n{\/each}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here&#8217;s how the product grid will look:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"656\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-3\/5_Ways_Transform_Images_Svelte-Blog-3.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_656,c_scale\/f_auto,q_auto\/v1701214176\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-3\/5_Ways_Transform_Images_Svelte-Blog-3.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31908\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214176\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214176\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-3\/5_Ways_Transform_Images_Svelte-Blog-3.png?_i=AA 2000w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214176\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-3\/5_Ways_Transform_Images_Svelte-Blog-3.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214176\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-3\/5_Ways_Transform_Images_Svelte-Blog-3.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214176\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-3\/5_Ways_Transform_Images_Svelte-Blog-3.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214176\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-3\/5_Ways_Transform_Images_Svelte-Blog-3.png?_i=AA 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>As you can see above, serving original images isn&#8217;t the best decision since they vary in layout and size, which results in a bad user experience.<\/p>\n\n\n\n<p>Now let&#8217;s update the code like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">CldImage<\/span>\n  <span class=\"hljs-attr\">crop<\/span>=<span class=\"hljs-string\">\"fill\"<\/span>\n  <span class=\"hljs-attr\">width<\/span>=<span class=\"hljs-string\">{500}<\/span>\n  <span class=\"hljs-attr\">height<\/span>=<span class=\"hljs-string\">{300}<\/span>\n  <span class=\"hljs-attr\">gravity<\/span>=<span class=\"hljs-string\">\"auto\"<\/span>\n  <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">{image}<\/span>\n  <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">{name}<\/span>\n\/&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The above updates the crop of the images and makes them look much more consistent and optimized.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"531\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-4\/5_Ways_Transform_Images_Svelte-Blog-4.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_531,c_scale\/f_auto,q_auto\/v1701214172\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-4\/5_Ways_Transform_Images_Svelte-Blog-4.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31909\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214172\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214172\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-4\/5_Ways_Transform_Images_Svelte-Blog-4.png?_i=AA 2000w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214172\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-4\/5_Ways_Transform_Images_Svelte-Blog-4.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214172\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-4\/5_Ways_Transform_Images_Svelte-Blog-4.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214172\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-4\/5_Ways_Transform_Images_Svelte-Blog-4.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214172\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-4\/5_Ways_Transform_Images_Svelte-Blog-4.png?_i=AA 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>We&#8217;ll use the <code>width<\/code> and <code>height<\/code> props of <code>CldImage<\/code> to resize images to 500&#215;300 pixels. In the above example, we&#8217;ve set the <code>crop<\/code> mode to <code>fill<\/code>, which scales the image to the desired dimensions without distorting it, though it may remove part of the image, such as the top of the third product, the &#8220;Carrot Cake.&#8221; You can explore all the cropping and resizing modes available <a href=\"https:\/\/cloudinary.com\/documentation\/resizing_and_cropping#resize_and_crop_modes\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Background Removal<\/h3>\n\n\n\n<p>You might want to remove the backgrounds to make the product images look the same and don&#8217;t want different backgrounds to distract the customers.<\/p>\n\n\n\n<p>You can remove the background by adding the <code>removeBackground<\/code> option with the <code>CldImage<\/code>. You might need to sign up for the <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_ai_background_removal_addon\" target=\"_blank\" rel=\"noreferrer noopener\">Cloudinary AI Background Removal<\/a> add-on, which gives 15 free edits.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">CldImage<\/span>\n  <span class=\"hljs-attr\">crop<\/span>=<span class=\"hljs-string\">\"pad\"<\/span>\n  <span class=\"hljs-attr\">width<\/span>=<span class=\"hljs-string\">{500}<\/span>\n  <span class=\"hljs-attr\">height<\/span>=<span class=\"hljs-string\">{300}<\/span>\n  <span class=\"hljs-attr\">removeBackground<\/span>\n  <span class=\"hljs-attr\">gravity<\/span>=<span class=\"hljs-string\">\"auto\"<\/span>\n  <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">{image}<\/span>\n  <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">{name}<\/span>\n\/&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here is how the product cards will look like now.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"316\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-5\/5_Ways_Transform_Images_Svelte-Blog-5.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_316,c_scale\/f_auto,q_auto\/v1701214168\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-5\/5_Ways_Transform_Images_Svelte-Blog-5.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31910\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214168\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214168\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-5\/5_Ways_Transform_Images_Svelte-Blog-5.png?_i=AA 2000w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214168\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-5\/5_Ways_Transform_Images_Svelte-Blog-5.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214168\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-5\/5_Ways_Transform_Images_Svelte-Blog-5.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214168\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-5\/5_Ways_Transform_Images_Svelte-Blog-5.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214168\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-5\/5_Ways_Transform_Images_Svelte-Blog-5.png?_i=AA 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Here&#8217;s a side-by-side comparison with the original image:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img width=\"1024\" height=\"336\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-6\/5_Ways_Transform_Images_Svelte-Blog-6.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_336,c_scale\/f_auto,q_auto\/v1701214147\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-6\/5_Ways_Transform_Images_Svelte-Blog-6.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31912\" style=\"width:822px;height:268px\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214147\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214147\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-6\/5_Ways_Transform_Images_Svelte-Blog-6.png?_i=AA 4739w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214147\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-6\/5_Ways_Transform_Images_Svelte-Blog-6.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214147\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-6\/5_Ways_Transform_Images_Svelte-Blog-6.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214147\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-6\/5_Ways_Transform_Images_Svelte-Blog-6.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214147\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-6\/5_Ways_Transform_Images_Svelte-Blog-6.png?_i=AA 1536w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214147\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-6\/5_Ways_Transform_Images_Svelte-Blog-6.png?_i=AA 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>After removing the background, we can put in a new background color to make the images look more consistent or have a similar feel.<\/p>\n\n\n\n<p>You can add a background like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">CldImage<\/span>\n  <span class=\"hljs-attr\">crop<\/span>=<span class=\"hljs-string\">\"pad\"<\/span>\n  <span class=\"hljs-attr\">width<\/span>=<span class=\"hljs-string\">{500}<\/span>\n  <span class=\"hljs-attr\">height<\/span>=<span class=\"hljs-string\">{300}<\/span>\n  <span class=\"hljs-attr\">removeBackground<\/span>\n  <span class=\"hljs-attr\">gravity<\/span>=<span class=\"hljs-string\">\"auto\"<\/span>\n  <span class=\"hljs-attr\">background<\/span>=<span class=\"hljs-string\">\"teal\"<\/span>\n  <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">{image}<\/span>\n  <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">{name}<\/span>\n\/&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"291\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-7\/5_Ways_Transform_Images_Svelte-Blog-7.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_291,c_scale\/f_auto,q_auto\/v1701214143\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-7\/5_Ways_Transform_Images_Svelte-Blog-7.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31913\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214143\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214143\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-7\/5_Ways_Transform_Images_Svelte-Blog-7.png?_i=AA 2000w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214143\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-7\/5_Ways_Transform_Images_Svelte-Blog-7.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214143\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-7\/5_Ways_Transform_Images_Svelte-Blog-7.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214143\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-7\/5_Ways_Transform_Images_Svelte-Blog-7.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214143\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-7\/5_Ways_Transform_Images_Svelte-Blog-7.png?_i=AA 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3. AI Generative Fill<\/h3>\n\n\n\n<p>Our online store needs a banner to highlight the products. The first image captures user&#8217;s attention. A popular choice for this is a carousel banner.<\/p>\n\n\n\n<p>With a carousel banner, you might serve the images in large widths like this.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">CldImage<\/span> <span class=\"hljs-attr\">width<\/span>=<span class=\"hljs-string\">{1440}<\/span> <span class=\"hljs-attr\">height<\/span>=<span class=\"hljs-string\">{600}<\/span> <span class=\"hljs-attr\">priority<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">{image}<\/span> <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">{name}<\/span> \/&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In the above code, we specify the image dimensions as 1440 by 600 pixels. These dimensions may be bigger than the original image size, which can make the resultant image cropped, as seen below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"536\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-8\/5_Ways_Transform_Images_Svelte-Blog-8.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_536,c_scale\/f_auto,q_auto\/v1701214139\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-8\/5_Ways_Transform_Images_Svelte-Blog-8.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31914\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214139\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214139\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-8\/5_Ways_Transform_Images_Svelte-Blog-8.png?_i=AA 2000w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214139\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-8\/5_Ways_Transform_Images_Svelte-Blog-8.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214139\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-8\/5_Ways_Transform_Images_Svelte-Blog-8.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214139\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-8\/5_Ways_Transform_Images_Svelte-Blog-8.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214139\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-8\/5_Ways_Transform_Images_Svelte-Blog-8.png?_i=AA 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>When creating banners, cups, t-shirts, or other promotional items featuring the product, it&#8217;s challenging to predict every image size and use, especially after the product photo shoot is complete.<\/p>\n\n\n\n<p>To address this, we can use <a href=\"https:\/\/cloudinary.com\/products\/cloudinary_ai\" target=\"_blank\" rel=\"noreferrer noopener\">Cloudinary AI Generative Fill<\/a>, which uses AI to extend the image, filling in the extra space by mirroring the existing content.<\/p>\n\n\n\n<p>We can use this feature by adding the <code>fillBackground<\/code> property to the <code>CldImage<\/code> component for AI to intelligently fill in the background, expanding the image to the required dimensions.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">CldImage<\/span>\n  <span class=\"hljs-attr\">fillBackground<\/span>\n  <span class=\"hljs-attr\">width<\/span>=<span class=\"hljs-string\">{1440}<\/span>\n  <span class=\"hljs-attr\">height<\/span>=<span class=\"hljs-string\">{600}<\/span>\n  <span class=\"hljs-attr\">priority<\/span>\n  <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">{image}<\/span>\n  <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">{name}<\/span>\n\/&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>With just a single update, the previously cropped image is now expanded. There&#8217;s no longer a need for costly product photo shoots.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"536\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-9\/5_Ways_Transform_Images_Svelte-Blog-9.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_536,c_scale\/f_auto,q_auto\/v1701214135\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-9\/5_Ways_Transform_Images_Svelte-Blog-9.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31915\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214135\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214135\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-9\/5_Ways_Transform_Images_Svelte-Blog-9.png?_i=AA 2000w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214135\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-9\/5_Ways_Transform_Images_Svelte-Blog-9.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214135\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-9\/5_Ways_Transform_Images_Svelte-Blog-9.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214135\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-9\/5_Ways_Transform_Images_Svelte-Blog-9.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214135\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-9\/5_Ways_Transform_Images_Svelte-Blog-9.png?_i=AA 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">4. Overlays<\/h3>\n\n\n\n<p>You might want to feature special offers or new items with text overlays on the images; we can use the <code>overlays<\/code> property of <code>CldImage<\/code> for this.<\/p>\n\n\n\n<p>We can also customize its appearance, including the font, color, size, font weight, background, etc.<\/p>\n\n\n\n<p>You can add overlays by adding the following:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">CldImage<\/span>\n  <span class=\"hljs-attr\">crop<\/span>=<span class=\"hljs-string\">\"fill\"<\/span>\n  <span class=\"hljs-attr\">width<\/span>=<span class=\"hljs-string\">{500}<\/span>\n  <span class=\"hljs-attr\">height<\/span>=<span class=\"hljs-string\">{300}<\/span>\n  <span class=\"hljs-attr\">gravity<\/span>=<span class=\"hljs-string\">\"auto\"<\/span>\n  <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">{image}<\/span>\n  <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">{name}<\/span>\n  <span class=\"hljs-attr\">overlays<\/span>=<span class=\"hljs-string\">{<\/span>\n    <span class=\"hljs-attr\">sale<\/span>\n      ? &#91;\n          {\n            <span class=\"hljs-attr\">width:<\/span> <span class=\"hljs-attr\">130<\/span>,\n            <span class=\"hljs-attr\">crop:<\/span> \"<span class=\"hljs-attr\">fit<\/span>\",\n            <span class=\"hljs-attr\">position:<\/span> {\n              <span class=\"hljs-attr\">x:<\/span> <span class=\"hljs-attr\">0<\/span>,\n              <span class=\"hljs-attr\">y:<\/span> <span class=\"hljs-attr\">0<\/span>,\n              <span class=\"hljs-attr\">gravity:<\/span> \"<span class=\"hljs-attr\">north_west<\/span>\",\n            },\n            <span class=\"hljs-attr\">effects:<\/span> &#91;\n              {\n                <span class=\"hljs-attr\">background:<\/span> \"<span class=\"hljs-attr\">red<\/span>\",\n              },\n            ],\n            <span class=\"hljs-attr\">text:<\/span> {\n              <span class=\"hljs-attr\">color:<\/span> \"<span class=\"hljs-attr\">white<\/span>\",\n              <span class=\"hljs-attr\">fontFamily:<\/span> \"<span class=\"hljs-attr\">Lato<\/span>\",\n              <span class=\"hljs-attr\">fontSize:<\/span> <span class=\"hljs-attr\">32<\/span>,\n              <span class=\"hljs-attr\">fontWeight:<\/span> \"<span class=\"hljs-attr\">bold<\/span>\",\n              <span class=\"hljs-attr\">text:<\/span> <span class=\"hljs-attr\">sale<\/span>,\n            },\n          },\n        ]\n      <span class=\"hljs-attr\">:<\/span> &#91;]\n  }\n\/&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here&#8217;s how the Product Cards look like now:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"589\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-10\/5_Ways_Transform_Images_Svelte-Blog-10.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_589,c_scale\/f_auto,q_auto\/v1701214130\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-10\/5_Ways_Transform_Images_Svelte-Blog-10.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31916\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214130\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214130\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-10\/5_Ways_Transform_Images_Svelte-Blog-10.png?_i=AA 2000w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214130\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-10\/5_Ways_Transform_Images_Svelte-Blog-10.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214130\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-10\/5_Ways_Transform_Images_Svelte-Blog-10.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214130\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-10\/5_Ways_Transform_Images_Svelte-Blog-10.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214130\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-10\/5_Ways_Transform_Images_Svelte-Blog-10.png?_i=AA 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>To add an online store logo to banners or product images, we can use the <code>overlays<\/code> property with the logo&#8217;s public ID.<\/p>\n\n\n\n<p>Update the Carousel Image code like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">CldImage<\/span>\n  <span class=\"hljs-attr\">fillBackground<\/span>\n  <span class=\"hljs-attr\">width<\/span>=<span class=\"hljs-string\">{1440}<\/span>\n  <span class=\"hljs-attr\">height<\/span>=<span class=\"hljs-string\">{600}<\/span>\n  <span class=\"hljs-attr\">priority<\/span>\n  <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">{image}<\/span>\n  <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">{name}<\/span>\n  <span class=\"hljs-attr\">overlays<\/span>=<span class=\"hljs-string\">{&#91;<\/span>\n    {\n      <span class=\"hljs-attr\">publicId:<\/span> `<span class=\"hljs-attr\">pfdisarufkbbbcd3jv9m<\/span>`,\n      <span class=\"hljs-attr\">position:<\/span> {\n        <span class=\"hljs-attr\">x:<\/span> <span class=\"hljs-attr\">10<\/span>,\n        <span class=\"hljs-attr\">y:<\/span> <span class=\"hljs-attr\">10<\/span>,\n        <span class=\"hljs-attr\">gravity:<\/span> \"<span class=\"hljs-attr\">south_east<\/span>\",\n      },\n      <span class=\"hljs-attr\">effects:<\/span> &#91;\n        {\n          <span class=\"hljs-attr\">crop:<\/span> \"<span class=\"hljs-attr\">fill<\/span>\",\n          <span class=\"hljs-attr\">gravity:<\/span> \"<span class=\"hljs-attr\">auto<\/span>\",\n          <span class=\"hljs-attr\">width:<\/span> <span class=\"hljs-attr\">120<\/span>,\n          <span class=\"hljs-attr\">height:<\/span> <span class=\"hljs-attr\">120<\/span>,\n        },\n      ],\n    },\n  ]}\n\/&gt;<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here&#8217;s how the carousel image will look now.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"426\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-11\/5_Ways_Transform_Images_Svelte-Blog-11.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_426,c_scale\/f_auto,q_auto\/v1701214124\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-11\/5_Ways_Transform_Images_Svelte-Blog-11.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31917\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214124\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214124\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-11\/5_Ways_Transform_Images_Svelte-Blog-11.png?_i=AA 2000w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214124\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-11\/5_Ways_Transform_Images_Svelte-Blog-11.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214124\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-11\/5_Ways_Transform_Images_Svelte-Blog-11.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214124\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-11\/5_Ways_Transform_Images_Svelte-Blog-11.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214124\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-11\/5_Ways_Transform_Images_Svelte-Blog-11.png?_i=AA 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">5. Optimization<\/h3>\n\n\n\n<p>Optimizing image formats and quality for faster page loads significantly improves user experience, leading to higher conversion rates.<\/p>\n\n\n\n<p>One way to boost performance is to serve images in modern image formats like <code>webp<\/code> and <code>avif<\/code> because of their amazing compression that can speed up page loading time.<\/p>\n\n\n\n<p>By default, this <code>format<\/code> property is set to <code>auto<\/code> which automatically opts images into being automatically delivered with the <a href=\"https:\/\/cloudinary.com\/guides\/image-formats\/best-image-format\">best image format<\/a> based on each visitor\u2019s browser optimizing loading time, saving bandwidth, and boosting performance.<\/p>\n\n\n\n<p>If you want to further customize the format in the images, we can set the <code>format<\/code> property in the <code>CldImage<\/code> component like so:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">format=<span class=\"hljs-string\">\"webp\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>With this update, the product images will now serve in the <code>webp<\/code> format.<\/p>\n\n\n\n<p>For further compression, the <code>quality<\/code> property is similarly automatically set to <code>auto<\/code>, which lets Cloudinary automatically use the best compression level and encoding settings to balance visual quality with file size tailored to the image content and the viewer\u2019s browser.<\/p>\n\n\n\n<p>This is particularly useful when the original images are high-resolution, but you only need to display a preview.<\/p>\n\n\n\n<p>If you\u2019d like to customize this, such as adding a higher compression, you can adjust the image&#8217;s quality with:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">quality=<span class=\"hljs-string\">'30'<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Bonus: Dynamic Social Media Cards<\/h3>\n\n\n\n<p>Optimized OG images and Twitter cards are crucial for social sharing, as they capture attention and drive traffic from social platforms to your online store.<\/p>\n\n\n\n<p>The <code>CldOgImage<\/code> component from <code>svelte-cloudinary<\/code> can be used to convert product images into optimized Open Graph images and Twitter cards for social sharing.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">script<\/span>&gt;<\/span><span class=\"javascript\">\n\t<span class=\"hljs-keyword\">import<\/span> { CldImage, CldOgImage } <span class=\"hljs-keyword\">from<\/span> <span class=\"hljs-string\">'svelte-cloudinary'<\/span>;\n\n\t<span class=\"hljs-keyword\">export<\/span> <span class=\"hljs-keyword\">let<\/span> data;\n\n\t$: ({ name, id, image, price, slug, description, longDescription } = data);\n<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">script<\/span>&gt;<\/span>\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">svelte:head<\/span>&gt;<\/span>\n\t<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">title<\/span>&gt;<\/span>\n\t\t{name} | Cloudinary Svelte Demo\n\t<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">title<\/span>&gt;<\/span>\n\t<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">meta<\/span> <span class=\"hljs-attr\">name<\/span>=<span class=\"hljs-string\">\"description\"<\/span> <span class=\"hljs-attr\">content<\/span>=<span class=\"hljs-string\">{description}<\/span> \/&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">svelte:head<\/span>&gt;<\/span>\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">CldOgImage<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">{image}<\/span> <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">{<\/span>`${<span class=\"hljs-attr\">name<\/span>} | <span class=\"hljs-attr\">Cloudinary<\/span> <span class=\"hljs-attr\">Svelte<\/span> <span class=\"hljs-attr\">Demo<\/span>`}\n\t<span class=\"hljs-attr\">twitterTitle<\/span>=<span class=\"hljs-string\">{<\/span>`${<span class=\"hljs-attr\">name<\/span>} | <span class=\"hljs-attr\">Cloudinary<\/span> <span class=\"hljs-attr\">Svelte<\/span> <span class=\"hljs-attr\">Demo<\/span>`} \/&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This component adds the following meta tags to the Head element of the page.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">title<\/span>&gt;<\/span>Strawberry Cream Jar | Cloudinary Svelte demo<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">title<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">meta<\/span>\n  <span class=\"hljs-attr\">name<\/span>=<span class=\"hljs-string\">\"description\"<\/span>\n  <span class=\"hljs-attr\">content<\/span>=<span class=\"hljs-string\">\"Moist carrot cake topped with rich cream cheese frosting. A timeless classic.\"<\/span>\n\/&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">meta<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"og:image:secure_url\"<\/span> <span class=\"hljs-attr\">content<\/span>=<span class=\"hljs-string\">\"https:\/\/res.cloudinary.com\/singhashutoshk\/image\/upload\/c_fill,w_2400,h_1254,g_center\/c_scale,w_1200\/f_jpg\/q_auto\/bx1asngfemz0aulpad1q?_a=BBECd1AE0\"<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">meta<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"og:image:alt\"<\/span> <span class=\"hljs-attr\">content<\/span>=<span class=\"hljs-string\">\"Strawberry Cream Jar | Cloudinary Svelte Demo\"<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">meta<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"twitter:title\"<\/span> <span class=\"hljs-attr\">content<\/span>=<span class=\"hljs-string\">\"Strawberry Cream Jar | Cloudinary Svelte Demo\"<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">meta<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"twitter:image\"<\/span> <span class=\"hljs-attr\">content<\/span>=<span class=\"hljs-string\">\"https:\/\/res.cloudinary.com\/singhashutoshk\/image\/upload\/c_fill,w_2400,h_1254,g_center\/c_scale,w_1200\/f_webp\/q_auto\/bx1asngfemz0aulpad1q?_a=BBECd1AE0\"<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Here is how the above OG image looks like:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"535\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-12\/5_Ways_Transform_Images_Svelte-Blog-12.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_535,c_scale\/f_auto,q_auto\/v1701214121\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-12\/5_Ways_Transform_Images_Svelte-Blog-12.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31918\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214121\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214121\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-12\/5_Ways_Transform_Images_Svelte-Blog-12.png?_i=AA 1200w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214121\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-12\/5_Ways_Transform_Images_Svelte-Blog-12.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214121\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-12\/5_Ways_Transform_Images_Svelte-Blog-12.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214121\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-12\/5_Ways_Transform_Images_Svelte-Blog-12.png?_i=AA 1024w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>CldOgImage uses the same API as CldImage, so we can customize it further to include a logo and text with overlays like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">&lt;CldOgImage\n\tsrc={image}\n\toverlays={&#91;\n\t\t{\n\t\t\t<span class=\"hljs-attr\">publicId<\/span>: <span class=\"hljs-string\">`pfdisarufkbbbcd3jv9m`<\/span>,\n\t\t\t<span class=\"hljs-attr\">position<\/span>: {\n\t\t\t\t<span class=\"hljs-attr\">x<\/span>: <span class=\"hljs-number\">10<\/span>,\n\t\t\t\t<span class=\"hljs-attr\">y<\/span>: <span class=\"hljs-number\">10<\/span>,\n\t\t\t\t<span class=\"hljs-attr\">gravity<\/span>: <span class=\"hljs-string\">'south_east'<\/span>\n\t\t\t},\n\t\t\t<span class=\"hljs-attr\">effects<\/span>: &#91;\n\t\t\t\t{\n\t\t\t\t\t<span class=\"hljs-attr\">crop<\/span>: <span class=\"hljs-string\">'fill'<\/span>,\n\t\t\t\t\t<span class=\"hljs-attr\">gravity<\/span>: <span class=\"hljs-string\">'auto'<\/span>,\n\t\t\t\t\t<span class=\"hljs-attr\">width<\/span>: <span class=\"hljs-number\">300<\/span>,\n\t\t\t\t\t<span class=\"hljs-attr\">height<\/span>: <span class=\"hljs-number\">300<\/span>\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t<span class=\"hljs-attr\">position<\/span>: {\n\t\t\t\t<span class=\"hljs-attr\">x<\/span>: <span class=\"hljs-number\">0<\/span>,\n\t\t\t\t<span class=\"hljs-attr\">y<\/span>: <span class=\"hljs-number\">0<\/span>,\n\t\t\t\t<span class=\"hljs-attr\">gravity<\/span>: <span class=\"hljs-string\">'center'<\/span>\n\t\t\t},\n\t\t\t<span class=\"hljs-attr\">effects<\/span>: &#91;\n\t\t\t\t{\n\t\t\t\t\t<span class=\"hljs-attr\">background<\/span>: <span class=\"hljs-string\">'black'<\/span>\n\t\t\t\t}\n\t\t\t],\n\n\t\t\t<span class=\"hljs-attr\">text<\/span>: {\n\t\t\t\t<span class=\"hljs-attr\">color<\/span>: <span class=\"hljs-string\">'white'<\/span>,\n\t\t\t\t<span class=\"hljs-attr\">fontFamily<\/span>: <span class=\"hljs-string\">'Open Sans'<\/span>,\n\t\t\t\t<span class=\"hljs-attr\">fontSize<\/span>: <span class=\"hljs-number\">140<\/span>,\n\t\t\t\t<span class=\"hljs-attr\">fontWeight<\/span>: <span class=\"hljs-string\">'bold'<\/span>,\n\t\t\t\t<span class=\"hljs-attr\">text<\/span>: <span class=\"hljs-string\">`<span class=\"hljs-subst\">${name}<\/span>`<\/span>\n\t\t\t}\n\t\t}\n\t]}\n\talt={<span class=\"hljs-string\">`<span class=\"hljs-subst\">${name}<\/span> | Cloudinary Svelte Demo`<\/span>}\n\ttwitterTitle={<span class=\"hljs-string\">`<span class=\"hljs-subst\">${name}<\/span> | Cloudinary Svelte Demo`<\/span>}\n\/&gt;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"535\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-13\/5_Ways_Transform_Images_Svelte-Blog-13.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_535,c_scale\/f_auto,q_auto\/v1701214117\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-13\/5_Ways_Transform_Images_Svelte-Blog-13.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31919\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214117\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214117\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-13\/5_Ways_Transform_Images_Svelte-Blog-13.png?_i=AA 1200w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214117\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-13\/5_Ways_Transform_Images_Svelte-Blog-13.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214117\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-13\/5_Ways_Transform_Images_Svelte-Blog-13.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214117\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-13\/5_Ways_Transform_Images_Svelte-Blog-13.png?_i=AA 1024w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Here is how these meta elements look like when parsed by social media channels. You can check it out <a href=\"https:\/\/metatags.io\/?url=https%3A%2F%2Fcloudinary-svelte-demo.vercel.app%2Fproduct%2Fstrawberry-cream-jar\">here<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"539\" data-public-id=\"Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-14\/5_Ways_Transform_Images_Svelte-Blog-14.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_539,c_scale\/f_auto,q_auto\/v1701214113\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-14\/5_Ways_Transform_Images_Svelte-Blog-14.png?_i=AA\" alt=\"\" class=\"wp-post-31906 wp-image-31920\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1701214113\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214113\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-14\/5_Ways_Transform_Images_Svelte-Blog-14.png?_i=AA 2000w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214113\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-14\/5_Ways_Transform_Images_Svelte-Blog-14.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214113\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-14\/5_Ways_Transform_Images_Svelte-Blog-14.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214113\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-14\/5_Ways_Transform_Images_Svelte-Blog-14.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701214113\/Web_Assets\/blog\/5_Ways_Transform_Images_Svelte-Blog-14\/5_Ways_Transform_Images_Svelte-Blog-14.png?_i=AA 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Wrapping Up<\/h2>\n\n\n\n<p>By leveraging Svelte and Cloudinary image management for your online store, you ensure a remarkable user experience powered by high-quality images and optimized performance. Boost the visual representation of your online store by effectively managing photos, including tasks like accurately sizing images, removing backgrounds, and even adding promotional text. <a href=\"https:\/\/cloudinary.com\/users\/register_free\">Sign up for a free account<\/a> today.<\/p>\n\n\n\n<p>Here are some additional resources:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/svelte.cloudinary.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cloudinary Svelte<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=Vr3H3XREkbw\" target=\"_blank\" rel=\"noreferrer noopener\">Optimizing Images with Svelte Cloudinary<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In this guide, we aim to enhance the aesthetics and user experience of your online store with five key techniques that utilize the power of Svelte, a modern web-framework, and Cloudinary, an image and video API solution. Jump right into the action with hands-on examples present in our GitHub Repo, or explore these techniques live [&hellip;]<\/p>\n","protected":false},"author":87,"featured_media":31923,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[409,134,388,376],"class_list":["post-31906","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-generative-ai","tag-guest-post","tag-optimize","tag-svelte"],"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>5 Ways to Transform Images in Svelte for Enhancing Your Online Store<\/title>\n<meta name=\"description\" content=\"In this guide, we aim to enhance the aesthetics and user experience of your online store with five key techniques that utilize the power of Svelte, a\" \/>\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\/5-ways-transform-images-svelte-online-store\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"5 Ways to Transform Images in Svelte for Enhancing Your Online Store\" \/>\n<meta property=\"og:description\" content=\"In this guide, we aim to enhance the aesthetics and user experience of your online store with five key techniques that utilize the power of Svelte, a\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-29T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-26T21:14:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701198290\/5_Ways_Transform_Images_Svelte-Blog\/5_Ways_Transform_Images_Svelte-Blog.jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"melindapham\" \/>\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\/5-ways-transform-images-svelte-online-store#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"5 Ways to Transform Images in Svelte for Enhancing Your Online Store\",\"datePublished\":\"2023-11-29T15:00:00+00:00\",\"dateModified\":\"2025-10-26T21:14:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store\"},\"wordCount\":1301,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701198290\/5_Ways_Transform_Images_Svelte-Blog\/5_Ways_Transform_Images_Svelte-Blog.jpg?_i=AA\",\"keywords\":[\"Generative AI\",\"Guest Post\",\"Optimize\",\"Svelte\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2023\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store\",\"url\":\"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store\",\"name\":\"5 Ways to Transform Images in Svelte for Enhancing Your Online Store\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701198290\/5_Ways_Transform_Images_Svelte-Blog\/5_Ways_Transform_Images_Svelte-Blog.jpg?_i=AA\",\"datePublished\":\"2023-11-29T15:00:00+00:00\",\"dateModified\":\"2025-10-26T21:14:47+00:00\",\"description\":\"In this guide, we aim to enhance the aesthetics and user experience of your online store with five key techniques that utilize the power of Svelte, a\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701198290\/5_Ways_Transform_Images_Svelte-Blog\/5_Ways_Transform_Images_Svelte-Blog.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701198290\/5_Ways_Transform_Images_Svelte-Blog\/5_Ways_Transform_Images_Svelte-Blog.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"5 Ways to Transform Images in Svelte for Enhancing Your Online Store\"}]},{\"@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\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\",\"name\":\"melindapham\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"caption\":\"melindapham\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"5 Ways to Transform Images in Svelte for Enhancing Your Online Store","description":"In this guide, we aim to enhance the aesthetics and user experience of your online store with five key techniques that utilize the power of Svelte, a","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\/5-ways-transform-images-svelte-online-store","og_locale":"en_US","og_type":"article","og_title":"5 Ways to Transform Images in Svelte for Enhancing Your Online Store","og_description":"In this guide, we aim to enhance the aesthetics and user experience of your online store with five key techniques that utilize the power of Svelte, a","og_url":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store","og_site_name":"Cloudinary Blog","article_published_time":"2023-11-29T15:00:00+00:00","article_modified_time":"2025-10-26T21:14:47+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701198290\/5_Ways_Transform_Images_Svelte-Blog\/5_Ways_Transform_Images_Svelte-Blog.jpg?_i=AA","type":"image\/jpeg"}],"author":"melindapham","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"5 Ways to Transform Images in Svelte for Enhancing Your Online Store","datePublished":"2023-11-29T15:00:00+00:00","dateModified":"2025-10-26T21:14:47+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store"},"wordCount":1301,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701198290\/5_Ways_Transform_Images_Svelte-Blog\/5_Ways_Transform_Images_Svelte-Blog.jpg?_i=AA","keywords":["Generative AI","Guest Post","Optimize","Svelte"],"inLanguage":"en-US","copyrightYear":"2023","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store","url":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store","name":"5 Ways to Transform Images in Svelte for Enhancing Your Online Store","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701198290\/5_Ways_Transform_Images_Svelte-Blog\/5_Ways_Transform_Images_Svelte-Blog.jpg?_i=AA","datePublished":"2023-11-29T15:00:00+00:00","dateModified":"2025-10-26T21:14:47+00:00","description":"In this guide, we aim to enhance the aesthetics and user experience of your online store with five key techniques that utilize the power of Svelte, a","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701198290\/5_Ways_Transform_Images_Svelte-Blog\/5_Ways_Transform_Images_Svelte-Blog.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701198290\/5_Ways_Transform_Images_Svelte-Blog\/5_Ways_Transform_Images_Svelte-Blog.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/5-ways-transform-images-svelte-online-store#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"5 Ways to Transform Images in Svelte for Enhancing Your Online Store"}]},{"@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":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9","name":"melindapham","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","caption":"melindapham"}}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1701198290\/5_Ways_Transform_Images_Svelte-Blog\/5_Ways_Transform_Images_Svelte-Blog.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/31906","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\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=31906"}],"version-history":[{"count":11,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/31906\/revisions"}],"predecessor-version":[{"id":38998,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/31906\/revisions\/38998"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/31923"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=31906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=31906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=31906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}