<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[imgproxy News]]></title><description><![CDATA[AI-powered, fast & secure image processing tool to improve developer lives and save time & money]]></description><link>https://imgproxy.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!B54-!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F367b2bfa-f196-4e14-b07f-50827152fd63_660x660.png</url><title>imgproxy News</title><link>https://imgproxy.substack.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 29 Jun 2026 13:24:35 GMT</lastBuildDate><atom:link href="https://imgproxy.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[imgproxy]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[imgproxy@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[imgproxy@substack.com]]></itunes:email><itunes:name><![CDATA[imgproxy]]></itunes:name></itunes:owner><itunes:author><![CDATA[imgproxy]]></itunes:author><googleplay:owner><![CDATA[imgproxy@substack.com]]></googleplay:owner><googleplay:email><![CDATA[imgproxy@substack.com]]></googleplay:email><googleplay:author><![CDATA[imgproxy]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[imgproxy News #14]]></title><description><![CDATA[imgproxy v4 is around the corner! Learn what it brings to the table!]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-14</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-14</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Wed, 22 Apr 2026 16:07:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gu-3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gu-3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gu-3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!gu-3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!gu-3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!gu-3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gu-3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3490177,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://imgproxy.substack.com/i/194810925?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gu-3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!gu-3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!gu-3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!gu-3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6b496d6-1d00-45b9-b5e7-0113c4a7c64b_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>imgproxy v4 brings lots of new features and improvements. Let&#8217;s take a look at some of the most significant ones!</p><h2>Internal Cache and changes to conditional request behavior</h2><p>For a long time, we&#8217;ve been encouraging users to rely entirely on an external cache, such as a CDN or a caching reverse proxy. Putting a CDN in front of imgproxy is and will always be a best practice, and it solves the caching problem for most users. However, we learned that some cases require an additional, long-term caching layer. imgproxy Pro v4 introduces an internal cache to fill this gap! It&#8217;s designed to be simple and efficient, and it can be used in combination with an external cache or on its own.</p><p>Also, imgproxy v4 changes the way it handles conditional requests. We made working with <code>Etag</code>/<code>If-None-Match</code> and <code>Last-Modified</code>/<code>If-Modified-Since</code> simpler yet more reliable.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://imgproxy.net/blog/v4-caching/&quot;,&quot;text&quot;:&quot;Read the blog post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://imgproxy.net/blog/v4-caching/"><span>Read the blog post</span></a></p><h2>Parallel image downloading</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Av7V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb9482a-3683-4473-83bd-531dd103456a_1620x726.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Av7V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb9482a-3683-4473-83bd-531dd103456a_1620x726.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Av7V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb9482a-3683-4473-83bd-531dd103456a_1620x726.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Av7V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb9482a-3683-4473-83bd-531dd103456a_1620x726.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Av7V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb9482a-3683-4473-83bd-531dd103456a_1620x726.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Av7V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb9482a-3683-4473-83bd-531dd103456a_1620x726.jpeg" width="1456" height="653" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fb9482a-3683-4473-83bd-531dd103456a_1620x726.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:653,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:191063,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://imgproxy.substack.com/i/194810925?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb9482a-3683-4473-83bd-531dd103456a_1620x726.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Av7V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb9482a-3683-4473-83bd-531dd103456a_1620x726.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Av7V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb9482a-3683-4473-83bd-531dd103456a_1620x726.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Av7V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb9482a-3683-4473-83bd-531dd103456a_1620x726.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Av7V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fb9482a-3683-4473-83bd-531dd103456a_1620x726.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>imgproxy v4 no longer waits for the entire image to download before processing it. It leverages libvips&#8217; full streaming capabilities to begin processing the image as soon as the first bytes arrive. This enables faster response times, especially for large images and slow image sources.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://imgproxy.net/blog/v4-parallel-image-downloading/&quot;,&quot;text&quot;:&quot;Read the blog post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://imgproxy.net/blog/v4-parallel-image-downloading/"><span>Read the blog post</span></a></p><h2>Better SVG minification, RAW formats support, and colorspace preservation</h2><p>imgproxy v4 improves the way it handles images in several ways:</p><ul><li><p><strong>Better SVG minification.</strong> The new homegrown SVG minifier is more effective in both size reduction and performance. Our benchmarks show <em>more than two times better</em> minification and <em>almost twice</em> the performance compared to the previously used minifier!</p></li><li><p><strong>RAW formats support.</strong> imgproxy Pro v4 can use digital camera RAW images (also known as digital negatives) as a source. This allows your users to upload RAW images and have them processed by imgproxy without the need for an intermediate conversion step.</p></li><li><p><strong>Colorspace preservation.</strong> Starting with v4, imgproxy preserves grayscale images in their original colorspace rather than converting them to RGB. Additionally, it allows you to disable the conversion of high-bit-depth images to 8-bit, preserving their original color range.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://imgproxy.net/blog/v4-better-svg-minification-raw-formats-support-colorspace-preservation/&quot;,&quot;text&quot;:&quot;Read the blog post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://imgproxy.net/blog/v4-better-svg-minification-raw-formats-support-colorspace-preservation/"><span>Read the blog post</span></a></p><h2>Image classification, cropping objects, and better autoquality</h2><p>imgproxy Pro becomes even smarter with v4!</p><ul><li><p><strong>Image classification.</strong> imgproxy Pro v4 can classify images using a machine-learning model, which is useful for tagging and categorizing them. You can either use our out-of-the-box model trained on 560 object classes or provide your own custom model for specific use cases.</p></li><li><p><strong>Cropping objects.</strong> With the new `crop_objects` option, imgproxy Pro can automatically crop images around detected objects. This is useful when you want to keep only the specific objects in the frame. For example, you can use this feature to generate perfect headshots from photos.</p></li><li><p><strong>Better autoquality.</strong> We improved how imgproxy Pro calculates an image&#8217;s visual quality loss. This allows it to choose the optimal compression level for each image, finding the best balance between quality and file size.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://imgproxy.net/blog/v4-image-classification-cropping-objects-better-autoquality/&quot;,&quot;text&quot;:&quot;Read the blog post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://imgproxy.net/blog/v4-image-classification-cropping-objects-better-autoquality/"><span>Read the blog post</span></a></p><h2>Better observability</h2><p>imgproxy v4 improves its observability features, providing better insights into its performance and behavior and making it easier to monitor and debug issues. This includes enhanced logging, more detailed request tracing, documentation URLs in error reports, and more!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://imgproxy.net/blog/v4-better-observability/&quot;,&quot;text&quot;:&quot;Read the blog post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://imgproxy.net/blog/v4-better-observability/"><span>Read the blog post</span></a></p><div><hr></div><p>Of course, these are not all the changes in v4, but the most significant ones. Check out the <a href="https://github.com/imgproxy/imgproxy/releases/tag/v4.0.0-beta.0">changelog</a> for the full list of what&#8217;s new in v4. And if you want to try imgproxy Pro v4 and get your hands on these juicy new features, just apply to our <a href="https://imgproxy.net/v4-early-access">Early Access program</a>!</p>]]></content:encoded></item><item><title><![CDATA[imgproxy News #13]]></title><description><![CDATA[Get ready for imgproxy v4! Read about the Early Access program and how to prepare your setup for migration]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-13</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-13</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Wed, 25 Mar 2026 16:30:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!roc_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!roc_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!roc_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!roc_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!roc_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!roc_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!roc_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:370441,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://imgproxy.substack.com/i/191031581?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!roc_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!roc_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!roc_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!roc_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491e4e7e-02fc-4a77-a4be-65e391619b99_1536x1024.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>imgproxy v4 is almost here!</h2><p>A long and winding road to the next major release is finally coming to an end. We spent eight months revising every small detail of imgproxy and adding new features, and we look forward to showing you the result.</p><p>We are doing our best to make the beta version of imgproxy v4 available in the next couple of weeks, so stay tuned for the announcement! Docker images of the open-source version will be available to everyone for testing, and the Pro version will be available to our Pro users. But that&#8217;s not all!</p><p>We launched an <a href="https://imgproxy.net/v4-early-access/">Early Access Program</a> for imgproxy Pro v4, and you can sign up now! By joining the program, you&#8217;ll get free access to the pre-release versions of imgproxy Pro v4, and if you decide to stay with us after the release, you&#8217;ll get a 20% discount on your subscription for the first year!</p><p>Your feedback was always the driving force behind imgproxy, and now it&#8217;s more important than ever!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://imgproxy.net/v4-early-access/&quot;,&quot;text&quot;:&quot;Join Early Access Program&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://imgproxy.net/v4-early-access/"><span>Join Early Access Program</span></a></p><h3>How to prepare your setup for imgproxy v4</h3><p>Though imgproxy v4 is almost fully compatible with v3, there are still some deprecated features in v3 that will be removed in v4. To make the transition to v4 safer, we recommend that you prepare your setup for v4 by doing the following:</p><p>1. <strong>Upgrade to the latest v3 version.</strong> Make sure you are using the latest version of imgproxy v3 (v3.31.1 at the time of writing). It contains a few new deprecations that will be removed in v4, so upgrading to the latest v3 version will give you a better idea of what to expect in v4.</p><p>2. <strong>Review the deprecation warnings.</strong> Since all the deprecated features are config-related, all the deprecation warnings are logged at startup. Review the logs and make sure you understand which features are deprecated and how to replace them with the new ones.</p><p>3. <strong>Enable fail-on-deprecation.</strong> After you have updated your configuration and made sure that you are not using any deprecated features, you can enable the <a href="https://docs.imgproxy.net/latest/configuration/options#IMGPROXY_FAIL_ON_DEPRECATION">IMGPROXY_FAIL_ON_DEPRECATION</a> config variable. This will cause imgproxy to fail to start if it detects any deprecated features in the configuration, helping you catch any remaining deprecated features before you upgrade to v4.</p><p>After upgrading to v4, you can disable the <code>IMGPROXY_FAIL_ON_DEPRECATION</code> variable, so imgproxy will not fail to start if new deprecations are added in the future.</p><div><hr></div><h2>New features</h2><p>It&#8217;s been a long time since the last newsletter, and imgproxy has grown some new features since then. Here are the most important ones:</p><h3>Changed graceful shutdown behavior</h3><p>When you stop imgproxy, it doesn&#8217;t stop immediately but waits for the current requests to finish. Before version 3.30, it always waited for 5 seconds before forcefully shutting down. But if you&#8217;re dealing with heavy processing, 5 seconds may not be enough.</p><p>Since version 3.30, the graceful shutdown timeout depends on the <a href="https://docs.imgproxy.net/latest/configuration/options#IMGPROXY_TIMEOUT">IMGPROXY_TIMEOUT</a> config value: imgproxy will wait for twice the <code>IMGPROXY_TIMEOUT</code> number of seconds before forcefully shutting down. Additionally, you can use the <a href="https://docs.imgproxy.net/latest/configuration/options#IMGPROXY_GRACEFUL_STOP_TIMEOUT">IMGPROXY_GRACEFUL_STOP_TIMEOUT</a> config to override the default timeout.</p><h3>Color profile override (Pro only)</h3><p>Before version 3.30, you could only choose to keep the embedded color profile or to strip it and convert the image to sRGB. This is enough for most cases, but some use cases require more control. For example, if you use imgproxy to prepare assets for printing, you need them to be in CMYK color space with a specific ICC profile. Starting from version 3.30, imgproxy can do this!</p><p>The new <a href="https://docs.imgproxy.net/latest/usage/processing#color-profile">color_profile</a> processing option lets you specify a custom ICC profile to embed in the output image. The image will be automatically converted to the color space defined by the ICC profile. By default, imgproxy looks for ICC profiles in the <code>/usr/share/color/icc</code> directory, but you can specify a custom path using the <a href="https://docs.imgproxy.net/latest/configuration/options#IMGPROXY_COLOR_PROFILES_DIR">IMGPROXY_COLOR_PROFILES_DIR</a> config.</p><h3>AVIF subsampling control (Pro only)</h3><p>AVIF format supports different chroma subsampling modes, which can affect the quality and size of the output image. Prior to version 3.31, imgproxy enabled chroma subsampling for AVIF images saved with a quality lower than 90. Starting from version 3.31, you can control the chroma subsampling mode for AVIF images using the new <a href="https://docs.imgproxy.net/latest/configuration/options#IMGPROXY_AVIF_SUBSAMPLE">IMGPROXY_AVIF_SUBSAMPLE</a> config. You can choose to always enable subsampling, always disable it, or let imgproxy decide based on the quality setting.</p><p>Additionally, the new <a href="https://docs.imgproxy.net/latest/usage/processing#avif-options">avif_options</a> processing option allows you to override the <code>IMGPROXY_AVIF_SUBSAMPLE</code> value for individual requests, giving you even more control over the output image quality and size.</p><h3>Flipping images</h3><p>That may sound funny that imgproxy didn&#8217;t support flipping images until recently, but it&#8217;s true. We always thought of flipping as something better done with CSS. But it turned out that doing it on the server side can be useful in some cases. So here it is: the new <a href="https://docs.imgproxy.net/latest/usage/processing#flip">flip</a> processing option!</p><h3>Blurring areas (Pro only)</h3><p>Wait a second, wasn&#8217;t that already a thing? Not exactly. You could blur the whole image, or you could blur objects detected by the object detection model, but you couldn&#8217;t blur specific areas defined by coordinates. Now you can!</p><p>The new <a href="https://docs.imgproxy.net/latest/usage/processing#blur-areas">blur_areas</a> processing option lets you specify one or more areas to blur in the output image. Each area is defined by its top-left corner coordinates, width, and height.</p><div><hr></div><p>That&#8217;s it for today! We&#8217;d keep our fingers crossed that the next newsletter will be the imgproxy v4 announcement, but those fingers are busy preparing the release. So stay tuned and don&#8217;t forget to apply to the <a href="https://imgproxy.net/v4-early-access/">Early Access Program</a>!</p>]]></content:encoded></item><item><title><![CDATA[imgproxy News #12]]></title><description><![CDATA[New security measures, new monitoring possibilities, new features, and new articles. This is a new imgproxy news issue!]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-12</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-12</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Wed, 06 Aug 2025 14:03:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!e1nh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!e1nh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e1nh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!e1nh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!e1nh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!e1nh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e1nh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2934293,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://imgproxy.substack.com/i/169659900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!e1nh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!e1nh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!e1nh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!e1nh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d4b796-1d1d-46b9-ba70-8d52e84c1fb8_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The new imgproxy release is out, and it brings some long-anticipated features. Let's check them out!</p><div><hr></div><h2>New features</h2><h3>New security measures</h3><p>We are security paranoids, and we highly recommend using <a href="https://docs.imgproxy.net/usage/signing_url">URL signatures</a> when it's possible. However, we understand that sometimes it's not feasible, especially if you generate imgproxy URLs on the frontend side (hello, Next.js users!). That's why we added new config options to help you secure your imgproxy instance even without URL signatures:</p><ul><li><p>The <a href="https://docs.imgproxy.net/configuration/options#IMGPROXY_MAX_RESULT_DIMENSION">IMGPROXY_MAX_RESULT_DIMENSION</a> config option allows you to limit the maximum dimension of the resulting image. If either the requested image's width or height exceeds this limit, imgproxy will downscale it to fit within the specified dimensions.</p></li><li><p>The <a href="https://docs.imgproxy.net/configuration/options#IMGPROXY_ALLOWED_PROCESSING_OPTIONS">IMGPROXY_ALLOWED_PROCESSING_OPTIONS</a> and <a href="https://docs.imgproxy.net/configuration/options#IMGPROXY_ALLOWED_INFO_OPTIONS">IMGPROXY_ALLOWED_INFO_OPTIONS</a> config options allow you to specify which processing and info options can be used in the URL. If a request contains an option that is not permitted, imgproxy won&#8217;t process the image and will return an error. However, you still can use forbidden options in presets.</p></li><li><p>The <a href="https://docs.imgproxy.net/configuration/options#IMGPROXY_MAX_CHAINED_PIPELINES">IMGPROXY_MAX_CHAINED_PIPELINES</a> config option allows you to limit the number of chained pipelines defined in the URL. If the number of pipelines exceeds this limit, imgproxy won&#8217;t process the image and will return an error.</p></li></ul><h3>Better observability</h3><p>We at the imgproxy team understand the importance of good observability in production systems. That's why imgproxy works with all the major monitoring and error tracking systems out of the box. In the latest release, we improved imgproxy's observability capabilities even further:</p><ul><li><p>We added the <code>`source_image_origin`</code> attribute to the root and <code>`downloading_image`</code> trace spans. This attribute helps debug image download issues.</p></li><li><p>We added the <code>`source_image_url`</code> attribute to the <code>`downloading_image`</code> trace span. Previously, this attribute was only available in the root span.</p></li><li><p>We added the <code>`processing_options`</code> attribute to the <code>`processing_image`</code> trace span. Previously, this attribute was only available in the root span.</p></li><li><p>We added the <code>`workers`</code> and <code>`workers_utilization`</code> metrics to all the supported metric systems. These metrics are helpful for autoscaling and monitoring the workers' usage.</p></li><li><p>We added the <code>`Source Image Origin`</code> attribute to error reports for all the supported error tracking systems to help you debug image download issues.</p></li></ul><h3>New processing option: <code>crop_aspect_ratio</code></h3><p>Imagine a scenario where you have relative crop coordinates saved in a database, and you want to tune the aspect ratio of the crop dynamically to fit your needs. The new <a href="https://docs.imgproxy.net/usage/processing#crop-aspect-ratio">crop_aspect_ratio</a> processing option enables you to do just that. You can pass relative crop coordinates to the `crop` processing option and then use `crop_aspect_ratio` to adjust the aspect ratio of the crop dynamically. You can also specify if imgproxy should decrease or increase the crop area to fit the selected aspect ratio.</p><h3>Saving images as PDF documents</h3><p><a href="https://imgproxy.net/#request">imgproxy Pro</a> has been able to render PDF documents to images since ancient times. This is useful if you want to display a PDF document's pages in a web application. But what about the opposite scenario? What if you need to upload an image to a system that only accepts PDF documents? imgproxy can help with that, too!</p><p>Since version 3.29.0, imgproxy Pro can save images as PDF documents. This can be done by using the <code>`pdf`</code> format in the URL. imgproxy will then create a PDF document with a single page, the size of the image, and embed the image in the JPEG format into it.</p><h3>New WebP compression options</h3><p>imgproxy v3.29.0 introduces a couple of new config options for WebP compression:</p><ul><li><p><a href="https://docs.imgproxy.net/configuration/options#IMGPROXY_WEBP_EFFORT">IMGPROXY_WEBP_EFFORT</a> controls the CPU effort spent improving compression. The larger the value, the slower the encoding process, but the better the compression.</p></li><li><p><a href="https://docs.imgproxy.net/configuration/options#IMGPROXY_WEBP_PRESET">IMGPROXY_WEBP_PRESET</a> allows setting the WebP compression preset, such as <code>`default`</code>, <code>`photo`</code>, <code>`picture`</code>, <code>`drawing`</code>, <code>`icon`</code>, or <code>`text`</code>. <a href="https://imgproxy.net/#request">imgproxy Pro</a> users can also dynamically redefine <code>`IMGPROXY_WEBP_PRESET`</code> using the <a href="https://docs.imgproxy.net/usage/processing#webp-options">webp_options</a> processing option.</p></li></ul><div><hr></div><h2>New articles</h2><h3>Image optimization for Next.js with imgproxy</h3><p>Are you building a Next.js application and struggling with expensive, inefficient, or inflexible image optimization? Maybe it's time to switch to imgproxy? Read our comprehensive guide to learn how!</p><p><a href="https://imgproxy.net/blog/image-optimization-for-nextjs-with-imgproxy/">Read the tutorial</a></p><h3>7 signs of a healthy image processing pipeline</h3><p>So, you&#8217;ve established an image processing pipeline. You have all the features you need, and everything seems to be fine. But is it really? Time for a little checkup! Here are 7 signs to confirm your image processing has really grown up to be healthy and strong.</p><p><a href="https://imgproxy.net/blog/7-signs-of-a-healthy-image-processing-pipeline/">Read the post</a></p><h3>How SaaS billing goes wrong &#8211; and how imgproxy bills less</h3><p>More and more companies are migrating to imgproxy from SaaS solutions to achieve significant cost savings. But how does this work? Why is using imgproxy way more cost-effective than traditional SaaS models? Read the explanation in our blog post!</p><p><a href="https://imgproxy.net/blog/how-saas-billing-goes-wrong-and-how-imgproxy-bills-less/">Read the post</a></p><div><hr></div><p>That's it for today! As usual, our mailbox is open for your feedback, questions, and feature requests. Don't hesitate to reach out to us at <a href="mailto:info@imgproxy.net">info@imgproxy.net</a>!</p>]]></content:encoded></item><item><title><![CDATA[imgproxy News #11]]></title><description><![CDATA[Better saturation adjustment, SEO-friendly URLs, improved error reporting, and a whole bunch of new articles]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-11</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-11</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Wed, 02 Apr 2025 17:21:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YTAI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YTAI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YTAI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YTAI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YTAI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YTAI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YTAI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg" width="728" height="408" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:816,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:687027,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://imgproxy.substack.com/i/159844161?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YTAI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YTAI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YTAI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YTAI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8622e92d-af37-4a58-aae7-a3157a5d1edd_1920x1076.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Though the new imgproxy release doesn't bring many groundbreaking features, there are still some changes we'd love you to hear about. Let's take a look at the most important ones.</p><h2>New features</h2><h3>CIE-correct saturation adjustment</h3><p>In earlier versions, imgproxy used the HSV color space to adjust the saturation of images when the <code>`saturation`</code> processing option was used. Though this approach was simple and the results were satisfactory, it had some downsides:</p><ul><li><p>The HSV color space does not have a "Lightness" or "Brightness" channel. This means that when you change the saturation, the brightness of the color also changes.</p></li><li><p>The HSV color space is not perceptually uniform, meaning that the same change in saturation may not produce the same visual effect across different colors.</p></li><li><p>An image with the saturation set to zero through the HSV color space will significantly differ from the same image converted to grayscale using the <a href="https://en.wikipedia.org/wiki/Grayscale#Colorimetric_(perceptual_luminance-preserving)_conversion_to_grayscale">CIE linear luminance formula</a>.</p></li></ul><p>These issues made us reconsider our approach to saturation adjustment.</p><p>The most obvious solution would be to use the LCh color space, which is perceptually uniform. However, converting to LCh and back to sRGB is pretty expensive (that's why we didn't use it in the first place). So, we went a bit further and implemented a new algorithm that does not require conversion to LCh but still provides a perceptually uniform saturation adjustment.</p><p>Here is a photo of a corgi named Pillow taken by <a href="https://unsplash.com/photos/white-and-brown-corgi-on-gray-sand-during-daytime-QzSrKduMg7s">Y Tsui</a>. We increased its saturation twice using the old and new algorithms. As they say: feel the difference!</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3feaa998-ac8e-4107-8965-0c8ef57e934f_2048x1536.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7912144d-ae77-4c4c-b179-fa9de0f145b2_2048x1536.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0bf33b1b-9c70-43a3-aa22-bdcbe6def5ac_2048x1536.jpeg&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f851f510-07ca-4897-995c-2b10f96242d9_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><h3>SEO-friendly URLs</h3><p>Google and other search engines prefer URLs that are easy to read and understand. In the case of image URLs, this means that the filename in the URL path should be descriptive of the image content: <code>`cute-corgi.jpg`</code> is better for SEO than <code>`IMG_1234.jpg`</code>.</p><p>With imgproxy, using the <a href="https://docs.imgproxy.net/usage/processing#plain">plain source URL format</a> solves this issue since the original filename will be included in the imgproxy URL as is. However, many of our users prefer (and we usually recommend) using <a href="https://docs.imgproxy.net/usage/processing#base64-encoded">Base64-encoded source URLs</a> in production. The problem is that the Base64 encoding "hides" the filename, making it something like <code>`Y3V0ZS1jb3JnaS5qcGc`</code>, which is total gibberish to search engines.</p><p>Version 3.28.0 of imgproxy solves this problem with a new <a href="https://docs.imgproxy.net/configuration/options#IMGPROXY_BASE64_URL_INCLUDES_FILENAME">IMGPROXY_BASE64_URL_INCLUDES_FILENAME</a> config. When it is set to `true`, imgproxy will ignore the last part of the Base64-encoded URL, allowing you to use it to make URLs SEO-friendly. For example, if you specify the source URL like this: <code>`Y3V0ZS1jb3JnaS5qcGc/cute-corgi.jpg`</code>, imgproxy will ignore the <code>`/cute-corgi.jpg`</code> part and will only decode the <code>`Y3V0ZS1jb3JnaS5qcGc`</code> part. However, search engines will treat the <code>`cute-corgi.jpg`</code> part as a filename.</p><h3>Improved error reporting</h3><p>Though we love the way Go deals with errors, it makes it somewhat difficult to report them properly. This is especially true when you use some kind of wrapper around your errors to add context. We use such a wrapper in imgproxy, and this was leading to invalid grouping of errors in error tracking systems like Sentry.</p><p>In imgproxy v3.28.0, we completely revised the way we handle errors. We rewrote the error wrapper and even hijacked some error-reporting libraries to make error reports more informative. Now, error reports contain the full error hierarchy and stack traces of all errors in the chain when possible. We also created Go types for different kinds of errors to make it easier for error trackers to group them.</p><h3>The multi-regional mode is now the default for S3 integration</h3><p>For a long time, improxy could work with S3 buckets located only in a single region specified in the configuration. Later, we added the <code>`IMGPROXY_S3_MULTI_REGION`</code> configuration option that switched imgprioxy's S3 integration to the multi-regional mode. Though this option allowed the use of S3 buckets in different regions, it required an additional request to S3 to determine the bucket region when imgproxy hits the bucket for the first time. This is why we disabled this option by default.</p><p>Starting with version 3.28.0, the multi-regional mode is enabled by default, and the <code>`IMGPROXY_S3_MULTI_REGION`</code> configuration option is removed. We revised the way imgproxy works with S3, and now it does not make an additional request when the bucket is located in the region specified in the configuration. We also added <a href="https://docs.imgproxy.net/image_sources/amazon_s3#choosing-the-aws-region">a section to the documentation</a> that describes how to choose and configure an S3 region for the best performance.</p><div><hr></div><h2>New articles</h2><h3><strong>Train your own object detection model</strong></h3><p>imgproxy Pro supports object-based cropping, blurring, and analysis &#8212; and now you can train your own model for your specific use case. Whether it&#8217;s fashion products, vehicles, animals, or anything else, we show you how to prepare and integrate a YOLO-based model into your imgproxy pipeline.</p><p><a href="https://imgproxy.net/blog/training-object-detection-models-for-imgproxy/">Read the tutorial</a></p><div><hr></div><h3><strong>Why we switched from Imgix to imgproxy</strong></h3><p>The team at <a href="https://glass.photo/">Glass</a> wrote a fantastic post about their migration from Imgix to imgproxy. It covers everything from performance and pricing to security and caching strategy. If you're thinking of making the switch, this is a must-read.</p><p><a href="https://glass.photo/highlights/taking-control-of-image-processing">Read the case study</a></p><div><hr></div><h3><strong>Is it time to move on from SaaS?</strong></h3><p>Pricing shifts in SaaS image processing have left many teams looking for self-hosted alternatives. We break down when it might be time to switch, how it can save you money, and what <a href="https://www.playbook.com/">Playbook</a> learned during their transition to imgproxy.</p><p><a href="https://imgproxy.net/blog/is-it-the-right-time-to-switch-from-saas/">Explore the pros and cons</a></p><div><hr></div><h3><strong>Why we love Docker (and you should too)</strong></h3><p>Turns out, a lot of teams are still building imgproxy from source &#8212; and running into issues that Docker solves in seconds. We put together a no-nonsense article explaining why containerization is our go-to and why it can make your life easier too.</p><p><a href="https://imgproxy.net/blog/why-we-love-docker/">Read the post</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jeLD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef540f3-82d5-4a84-a716-f79efa68bdfa_1792x1017.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jeLD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef540f3-82d5-4a84-a716-f79efa68bdfa_1792x1017.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jeLD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef540f3-82d5-4a84-a716-f79efa68bdfa_1792x1017.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jeLD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef540f3-82d5-4a84-a716-f79efa68bdfa_1792x1017.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jeLD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef540f3-82d5-4a84-a716-f79efa68bdfa_1792x1017.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jeLD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef540f3-82d5-4a84-a716-f79efa68bdfa_1792x1017.jpeg" width="1456" height="826" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ef540f3-82d5-4a84-a716-f79efa68bdfa_1792x1017.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:826,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:459987,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://imgproxy.substack.com/i/159844161?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef540f3-82d5-4a84-a716-f79efa68bdfa_1792x1017.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jeLD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef540f3-82d5-4a84-a716-f79efa68bdfa_1792x1017.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jeLD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef540f3-82d5-4a84-a716-f79efa68bdfa_1792x1017.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jeLD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef540f3-82d5-4a84-a716-f79efa68bdfa_1792x1017.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jeLD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef540f3-82d5-4a84-a716-f79efa68bdfa_1792x1017.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>That&#8217;s it for now. Do you have feedback or ideas about imgproxy itself? Want to share your experience or write about how you use imgproxy in production? Just hit us at <a href="mailto:info@imgproxy.net">info@imgproxy.net</a> &#8212; we&#8217;d love to hear from you.</p><p>Thanks for being part of the imgproxy community &#128525;</p>]]></content:encoded></item><item><title><![CDATA[imgproxy News #10]]></title><description><![CDATA[JPEG XL and PSD support, object-oriented crop improvements, and more]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-10</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-10</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Thu, 19 Dec 2024 19:08:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lEql!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7e78493-5001-4383-aeb0-e190e53b8e9e_1792x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The holidays are near, and we brought you some presents! &#127873; The new imgproxy release is here, and it contains some long-anticipated features. Let's see what's new in imgproxy 3.27.0!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lEql!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7e78493-5001-4383-aeb0-e190e53b8e9e_1792x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lEql!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7e78493-5001-4383-aeb0-e190e53b8e9e_1792x1024.png 424w, https://substackcdn.com/image/fetch/$s_!lEql!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7e78493-5001-4383-aeb0-e190e53b8e9e_1792x1024.png 848w, https://substackcdn.com/image/fetch/$s_!lEql!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7e78493-5001-4383-aeb0-e190e53b8e9e_1792x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!lEql!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7e78493-5001-4383-aeb0-e190e53b8e9e_1792x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lEql!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7e78493-5001-4383-aeb0-e190e53b8e9e_1792x1024.png" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7e78493-5001-4383-aeb0-e190e53b8e9e_1792x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2860346,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lEql!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7e78493-5001-4383-aeb0-e190e53b8e9e_1792x1024.png 424w, https://substackcdn.com/image/fetch/$s_!lEql!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7e78493-5001-4383-aeb0-e190e53b8e9e_1792x1024.png 848w, https://substackcdn.com/image/fetch/$s_!lEql!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7e78493-5001-4383-aeb0-e190e53b8e9e_1792x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!lEql!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7e78493-5001-4383-aeb0-e190e53b8e9e_1792x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>JPEG XL support</h2><p>You've been asking for this since the moment Apple introduced JPEG XL support in Safari. The libvips team and we did our best to make it happen, and now we're happy to announce that starting version 3.27.0, imgproxy supports JPEG XL as both input and output format.</p><p>We did a series of tests to pick the default settings for JPEG XL most suitable for on-the-fly image processing:</p><ul><li><p><strong>Encoder effort:</strong> 4</p></li><li><p><strong>Quality:</strong> 77</p></li></ul><p>We found that these settings provide a good balance between processing speed, image quality, and file size. According to our tests, the average file size of images encoded with these settings is 10-20% smaller than those encoded with JPEG at 80% quality with all the Mozjpeg tweaks enabled. The average image quality measured with the SSIMULACRA2 metric is also slightly better.</p><p>Of course, you can always adjust these settings to your needs using the <code>`IMGPROXY_JXL_EFFORT`</code>, <code>`IMGPROXY_QUALITY`</code>, and <code>`IMGPROXY_FORMAT_QUALITY`</code> environment variables.</p><h2>PSD (Photoshop document) support</h2><p>JPEG XL is not the only new member of the image formats family supported by imgproxy. We also added first-class support for PSD (Photoshop document) and PSB (Photoshop big) files as source images for imgproxy Pro.</p><p>We did our best to add support for every PSD variant we could find or produce, yet there are a couple of limitations:</p><ol><li><p>imgproxy can only load PSD/PSB files saved with Photoshop's "Maximize Compatibility" option enabled. Luckily, this option is enabled by default in Photoshop, and we couldn't find any PSD files without it in the wild.</p></li><li><p>imgproxy can't load PSD/PSB with their image data compressed with ZIP. We couldn't find any PSD files with ZIP compression in the wild either, but if you have one and would like to share it with us, we would be happy to add support for it.</p></li></ol><p>Despite these limitations, imgproxy won't throw an error if it encounters a PSD/PSB file that doesn't meet these requirements. Instead, it will render it as a solid white image.</p><h2>Object-oriented crop improvements</h2><p>We constantly strive to improve one of the most beloved features of imgproxy&#8212;object-oriented cropping. This feature allows you to crop images based on the position of an object in the image rather than using fixed coordinates. The most common use case is detecting faces to keep them in the frame when cropping. Let's take a look at what improvements imgproxy Pro v3.27.0 brings to this feature.</p><h4>The <code>`objects_position`</code> option</h4><p>Before version 3.27.0, imgproxy always tried to put the object in the center of the cropped image. While most users expect this, some cases require a different behavior. For example, you may want to keep the object in the bottom-right corner of the cropped image. This is where the `objects_position` option comes in handy.</p><p>The `<a href="https://docs.imgproxy.net/latest/usage/processing#objects-position">objects_position</a>` option accepts the same values as the `<a href="https://docs.imgproxy.net/latest/usage/processing#gravity">gravity</a>` option, but there is one special value that is only available for <code>`objects_position`</code>&#8212;<code>`prop`</code>. This <code>`objects_position`</code> option value makes imgproxy put the objects in the positions in the cropped image that are proportional to their positions in the original image. This is useful when you want to keep the scene's composition while cropping.</p><h4>The <code>`IMGPROXY_OBJECT_DETECTION_GRAVITY_MODE`</code> config</h4><p>Before version 3.27.0, imgproxy always tried to keep as many objects in the frame as possible. But what if you only care about the one most important object? This is what the `<a href="https://docs.imgproxy.net/latest/configuration/options#IMGPROXY_OBJECT_DETECTION_GRAVITY_MODE">IMGPROXY_OBJECT_DETECTION_GRAVITY_MODE</a>` config is for.</p><p>The <code>`IMGPROXY_OBJECT_DETECTION_GRAVITY_MODE`</code> config accepts the following values:</p><ul><li><p><code>`max_score_area`</code>: This is the default mode which was used before version 3.27.0. In this mode, imgproxy selects the area covering the most detected objects, respecting their weights.</p></li><li><p><code>`one_best`</code>: in this mode, imgproxy will focus on the object with the highest score based on its area, confidence, and class weight.</p></li><li><p><code>`one_best_centermost`</code>: the same as `one_best,` but imgproxy will add the object's proximity to the image center to its score.</p></li></ul><h4>The <code>`IMGPROXY_OBJECT_DETECTION_SWAP_RB`</code> config</h4><p>This advanced-level config is only useful when using a custom object detection model. Some object-detection models expect images in the RGB format, while others expect them in the BGR format. Before version 3.27.0, imgproxy tried to detect the format based on the model, but this was not always accurate. The `<a href="https://docs.imgproxy.net/latest/configuration/options#IMGPROXY_OBJECT_DETECTION_SWAP_RB">IMGPROXY_OBJECT_DETECTION_SWAP_RB</a>` config allows you to change the imgproxy's behavior according to your model's requirements.</p><div><hr></div><h2><strong>Changes and fixes</strong></h2><p>Here are some notable changes and fixes from the latest release:</p><ul><li><p>The <code>`IMGPROXY_ENABLE_WEBP_DETECTION`</code> and <code>`IMGPROXY_ENABLE_AVIF_DETECTION`</code> configs were renamed to <code>`IMGPROXY_AUTO_WEBP`</code> and <code>`IMGPROXY_AUTO_AVIF`</code> respectively. We believe that the new names are more descriptive and easier to understand. The old names are still supported for backward compatibility but will be removed in the next major release.</p></li><li><p>The default <code>`IMGPROXY_AVIF_SPEED`</code> config value was changed to <code>`8`</code>, and the default AVIF quality was changed to <code>`63`</code>. We did the same tests as for JPEG XL and found that these values provide a good balance between speed and quality. You can still adjust them to your needs.</p></li><li><p>Fixed handling ICC profiles in 16-bit images with alpha channel.</p></li><li><p>Fixed detection of image dimensions in some cases.</p></li><li><p>Set <code>`Error`</code> status for errorred traces in OpenTelemetry.</p></li></ul><div><hr></div><h2>New article</h2><h4>AWS ECS, EC2, and Warm Pools: advantages and gotchas</h4><p>We've studied the usage of AWS EC2 warm pools with AWS Elastic Container Service (ECS) back and forth to warn you about the pitfalls and help you avoid them. Read about our findings in <a href="https://imgproxy.net/blog/aws-ecs-ec2-warm-pool/">our new blog post</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tA-_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8d3e08-046f-446d-8996-e95279413f1c_2048x1408.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tA-_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8d3e08-046f-446d-8996-e95279413f1c_2048x1408.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tA-_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8d3e08-046f-446d-8996-e95279413f1c_2048x1408.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tA-_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8d3e08-046f-446d-8996-e95279413f1c_2048x1408.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tA-_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8d3e08-046f-446d-8996-e95279413f1c_2048x1408.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tA-_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8d3e08-046f-446d-8996-e95279413f1c_2048x1408.jpeg" width="1456" height="1001" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b8d3e08-046f-446d-8996-e95279413f1c_2048x1408.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1001,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:861998,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tA-_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8d3e08-046f-446d-8996-e95279413f1c_2048x1408.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tA-_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8d3e08-046f-446d-8996-e95279413f1c_2048x1408.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tA-_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8d3e08-046f-446d-8996-e95279413f1c_2048x1408.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tA-_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8d3e08-046f-446d-8996-e95279413f1c_2048x1408.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>That&#8217;s a wrap for this year, folks! Dive into the new features, break things (just a little), and let us know how it goes. Have a fantastic holiday season&#8212;see you in 2025 with even more cool stuff! &#127876;</p>]]></content:encoded></item><item><title><![CDATA[imgproxy News #9]]></title><description><![CDATA[Linux packages, object-oriented crop improvements, new color filters, and more]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-9</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-9</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Tue, 24 Sep 2024 15:26:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wuxG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10cc7dd-7e14-42a1-94ae-43985cd86173_1456x1000.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A new version of imgproxy is out, and we're thrilled to share its new features with you!</p><h2>Linux packages</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wuxG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10cc7dd-7e14-42a1-94ae-43985cd86173_1456x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wuxG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10cc7dd-7e14-42a1-94ae-43985cd86173_1456x1000.png 424w, https://substackcdn.com/image/fetch/$s_!wuxG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10cc7dd-7e14-42a1-94ae-43985cd86173_1456x1000.png 848w, https://substackcdn.com/image/fetch/$s_!wuxG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10cc7dd-7e14-42a1-94ae-43985cd86173_1456x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!wuxG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10cc7dd-7e14-42a1-94ae-43985cd86173_1456x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wuxG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10cc7dd-7e14-42a1-94ae-43985cd86173_1456x1000.png" width="1456" height="1000" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f10cc7dd-7e14-42a1-94ae-43985cd86173_1456x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62530,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wuxG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10cc7dd-7e14-42a1-94ae-43985cd86173_1456x1000.png 424w, https://substackcdn.com/image/fetch/$s_!wuxG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10cc7dd-7e14-42a1-94ae-43985cd86173_1456x1000.png 848w, https://substackcdn.com/image/fetch/$s_!wuxG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10cc7dd-7e14-42a1-94ae-43985cd86173_1456x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!wuxG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff10cc7dd-7e14-42a1-94ae-43985cd86173_1456x1000.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Docker images were the primary distribution method of imgproxy since the very start. We love Docker for the simplicity of deployment it provides. However, not everyone is comfortable with Docker, and we understand that. That's why we added a way to pack imgproxy as a Linux package.</p><p>While Docker is still the primary and the most recommended way to run imgproxy, you can now extract a Linux package from the Docker image and install it on your server. The packaging script included in all the official imgproxy Docker images allows you to build imgproxy packages of the following formats:</p><ul><li><p><strong>DEB</strong> for Debian-based systems (Debian/Ubuntu/etc)</p></li><li><p><strong>RPM</strong> for Red Hat-based systems (RHEL/CentOS/Fedora/etc)</p></li><li><p><strong>TAR</strong> for any other Linux distributions</p></li></ul><p>The exported package contains the imgproxy binary, all the required libraries, and a configuration file that you can use to define necessary environment variables.</p><p>Check out the <a href="https://docs.imgproxy.net/latest/installation#building-linux-packages">official documentation</a> for more details on how to export and install imgproxy packages.</p><div><hr></div><h2>New features</h2><h4>Weighted object-oriented crop <em>(Pro version only)</em></h4><p>Before version 3.26.0, all the objects found by imgproxy in an image had the same weight. This means that during the object-oriented cropping, imgproxy would give the same attention to all the objects in the image. This is not always the desired behavior, as sometimes we want to crop the image around the most important object. Of course, we can specify the desired object classes in the `<a href="https://docs.imgproxy.net/latest/usage/processing#gravity">gravity</a>` option parameters, but in this case, imgproxy will ignore all the other objects. But what if we want imgproxy to respect all the objects in the image, but give more attention to some of them? Now it is possible!</p><p>In version 3.26.0, we introduced the object class weights. The higher the weight, the more attention imgproxy will give to the objects of this class. You can specify weights for object classes in two ways:</p><p>1. You can specify the default weight for each object class in the <a href="https://docs.imgproxy.net/latest/features/object_detection#class-names-file">class names file</a>. If you don't specify the weight for the object class, imgproxy will use the default weight of 1.</p><p>2. You can use the new `<code>objw`</code> <a href="https://docs.imgproxy.net/latest/usage/processing#gravity">gravity</a> type. This gravity type allows you to specify the classes of the objects you want to keep in the image and the weights for these classes.</p><p>Additionally, we added a pseudo-class <code>`all`</code> that matches all the objects in the image. You can use it with all the options that accept object classes like <code>`gravity`</code>, <code>`blur_detections`</code>, etc.</p><h4>Monochrome and duotone color filters <em>(Pro version only)</em></h4><p>imgproxy v3.26.0 adds two new color filters that allow you to stylize your images.</p><p>The first one is `<a href="https://docs.imgproxy.net/latest/usage/processing#monochrome">monochrome</a>`. It replaces all the colors in the images with shades of a single color according to pixel lightness. You can specify the color you want to use for the monochrome effect and the intensity of the effect.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ivfd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F855f3e88-5b3a-468d-a129-72c23988d389_1500x1000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ivfd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F855f3e88-5b3a-468d-a129-72c23988d389_1500x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ivfd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F855f3e88-5b3a-468d-a129-72c23988d389_1500x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ivfd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F855f3e88-5b3a-468d-a129-72c23988d389_1500x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ivfd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F855f3e88-5b3a-468d-a129-72c23988d389_1500x1000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ivfd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F855f3e88-5b3a-468d-a129-72c23988d389_1500x1000.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/855f3e88-5b3a-468d-a129-72c23988d389_1500x1000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99488,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ivfd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F855f3e88-5b3a-468d-a129-72c23988d389_1500x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ivfd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F855f3e88-5b3a-468d-a129-72c23988d389_1500x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ivfd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F855f3e88-5b3a-468d-a129-72c23988d389_1500x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ivfd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F855f3e88-5b3a-468d-a129-72c23988d389_1500x1000.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://unsplash.com/photos/person-in-purple-long-sleeve-shirt-playing-black-audio-mixer-I4l9mde7TzQ">Original photo by Daniel Robert Dinu</a></figcaption></figure></div><p>The second one is `<a href="https://docs.imgproxy.net/latest/usage/processing#duotone">duotone</a>`. It replaces all the colors in the images with two colors&#8212;one for the shadows and one for the highlights&#8212;according to pixel lightness. You can specify the colors you want to use for the duotone effect and the intensity of the effect.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EB0y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7420dd1-b832-4802-9068-9891dec68124_1500x1000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EB0y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7420dd1-b832-4802-9068-9891dec68124_1500x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!EB0y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7420dd1-b832-4802-9068-9891dec68124_1500x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!EB0y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7420dd1-b832-4802-9068-9891dec68124_1500x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!EB0y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7420dd1-b832-4802-9068-9891dec68124_1500x1000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EB0y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7420dd1-b832-4802-9068-9891dec68124_1500x1000.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7420dd1-b832-4802-9068-9891dec68124_1500x1000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:124879,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EB0y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7420dd1-b832-4802-9068-9891dec68124_1500x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!EB0y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7420dd1-b832-4802-9068-9891dec68124_1500x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!EB0y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7420dd1-b832-4802-9068-9891dec68124_1500x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!EB0y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7420dd1-b832-4802-9068-9891dec68124_1500x1000.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://unsplash.com/photos/a-bicycle-parked-on-a-balcony-overlooking-a-city-at-night-KIr2WtmVcNY">Original photo by Clark Gu</a></figcaption></figure></div><h4>More info in request traces and error reports</h4><p>imgproxy provides plenty of ways to instrument its work like collecting metrics and request traces, and error reporting. These instruments allow imgproxy users to quickly troubleshoot their image processing flow. To help our users even more, we added a couple of metadata entries to request traces and error reports:</p><ol><li><p><strong>Source image URL.</strong> This info can help to quickly determine which source images cause problems.</p></li><li><p><strong>Processing options.</strong> This metadata entry contains a JSON with parsed processing options. It can help to determine which options slow down the processing.</p></li></ol><p>If you wish imgproxy to report more info, just open an issue in our <a href="https://github.com/imgproxy/imgproxy">GitHub</a>, we're always open to feature requests!</p><h4>New advanced smart crop mode <em>(Pro version only)</em></h4><p>The advanced smart crop was added to imgproxy Pro in v3.14.0. During advanced smart crop, imgproxy detects multiple points of interest (or feature points). But those points can be treated in multiple ways. In v3.26.0, we added the ability to specify the way the points of interest should be treated. The new config&#8212;<a href="https://docs.imgproxy.net/configuration/options#IMGPROXY_SMART_CROP_ADVANCED_MODE">IMGPROXY_SMART_CROP_ADVANCED_MODE</a>&#8212;accepts the following values:</p><p>* <code>`max_score_area`</code>: This is the default advanced smart crop mode. In this mode, imgproxy selects the area of the image that contains points of interest with the highest total score.</p><p>* <code>`center_of_mass`</code>: In this mode, imgproxy calculates the center of mass of all points of interest and selects the area around this center.</p><div><hr></div><h2><strong>Changes and fixes</strong></h2><p>Here are some notable changes and fixes from the latest release:</p><ul><li><p>Fixed loading HEIC images made with iOS 18.</p></li><li><p><code>`net.host.name`</code> and <code>`http.url`</code> tags in OpenTelemetry traces are now set properly.</p></li><li><p>Fixed handling of <code>`#`</code> symbols in <code>`local://`</code>, <code>`s3://`</code>, <code>`gcs://`</code>, <code>`abs://`</code>, and <code>`swift://`</code> source image URLs.</p></li><li><p>Fixed the <code>`IMGPROXY_FALLBACK_IMAGE_HTTP_CODE`</code> config allowed values, allowing setting it to <code>`0`</code>.</p></li></ul><p></p>]]></content:encoded></item><item><title><![CDATA[imgproxy News #8]]></title><description><![CDATA[AWS Marketplace, new benchmark, watermarking features, better object detection, and more]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-8</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-8</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Tue, 16 Jul 2024 16:03:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OfuD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70d620d7-a05a-42dd-a104-6a88e0fb8ef1_1792x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s been a while since our last newsletter, and we have a lot of news and new features to share with you. Let&#8217;s dive in!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OfuD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70d620d7-a05a-42dd-a104-6a88e0fb8ef1_1792x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OfuD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70d620d7-a05a-42dd-a104-6a88e0fb8ef1_1792x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OfuD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70d620d7-a05a-42dd-a104-6a88e0fb8ef1_1792x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OfuD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70d620d7-a05a-42dd-a104-6a88e0fb8ef1_1792x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OfuD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70d620d7-a05a-42dd-a104-6a88e0fb8ef1_1792x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OfuD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70d620d7-a05a-42dd-a104-6a88e0fb8ef1_1792x1024.jpeg" width="728" height="416" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/70d620d7-a05a-42dd-a104-6a88e0fb8ef1_1792x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:459532,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OfuD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70d620d7-a05a-42dd-a104-6a88e0fb8ef1_1792x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OfuD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70d620d7-a05a-42dd-a104-6a88e0fb8ef1_1792x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OfuD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70d620d7-a05a-42dd-a104-6a88e0fb8ef1_1792x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OfuD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70d620d7-a05a-42dd-a104-6a88e0fb8ef1_1792x1024.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>imgproxy Pro on AWS Marketplace</h2><p>We have launched our product on AWS Marketplace. You can use the Docker images obtained from AWS Marketplace to run imgproxy on AWS ECS or AWS EKS. Here are some advantages of subscribing to our service on AWS marketplace:</p><p>&#8226; <strong>Instant access</strong>: Subscribe and start using imgproxy immediately, without waiting for approval.</p><p>&#8226; <strong>Pay as you go</strong>: Pay only for what you use on an hourly basis. No upfront costs or long-term contracts.</p><p>&#8226; <strong>Flexible scaling</strong>: Scale up or down as needed, with no lower or upper limits on subscription costs.</p><p><a href="https://aws.amazon.com/marketplace/pp/prodview-wy2xcndwgpuoq">Find us on AWS Marketplace</a>.</p><h2>New features</h2><h4>Replicated watermarks are now always centered</h4><p>Earlier, replicated watermarks were aligned by an image&#8217;s top-left corner, which caused inconsistent positions depending on the image size. Starting from version 3.24.0, replicated watermarks are aligned by an image&#8217;s center, making their positions stable.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1673a1db-54ab-4591-b28e-1c7455c6b898_2048x1273.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e421057b-0d8f-4b1d-9172-48de35fafefe_2048x1273.jpeg&quot;}],&quot;caption&quot;:&quot;Comparison of the old and new watermark alignments. Original photo by Nick Baker: https://unsplash.com/photos/yellow-volkswagen-t2-van-on-concrete-road-VuPIUePS_vU&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bbb99c51-20c5-4413-b3a8-fa3dca94288d_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><h4>New watermark position: chessboard order <em>(Pro version only)</em></h4><p>In version 3.24.0, imgproxy Pro can arrange watermarks in a chessboard order (alternating rows) for a more aesthetic look. Just use the <code>ch</code> value for the <code>position</code> argument of the <a href="https://docs.imgproxy.net/latest/usage/processing#watermark">watermark</a> processing option.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!u9gI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6ae65b-368b-4de8-be38-b2709f384050_2048x1273.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u9gI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6ae65b-368b-4de8-be38-b2709f384050_2048x1273.jpeg 424w, https://substackcdn.com/image/fetch/$s_!u9gI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6ae65b-368b-4de8-be38-b2709f384050_2048x1273.jpeg 848w, https://substackcdn.com/image/fetch/$s_!u9gI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6ae65b-368b-4de8-be38-b2709f384050_2048x1273.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!u9gI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6ae65b-368b-4de8-be38-b2709f384050_2048x1273.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u9gI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6ae65b-368b-4de8-be38-b2709f384050_2048x1273.jpeg" width="1456" height="905" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f6ae65b-368b-4de8-be38-b2709f384050_2048x1273.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:905,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:346067,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!u9gI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6ae65b-368b-4de8-be38-b2709f384050_2048x1273.jpeg 424w, https://substackcdn.com/image/fetch/$s_!u9gI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6ae65b-368b-4de8-be38-b2709f384050_2048x1273.jpeg 848w, https://substackcdn.com/image/fetch/$s_!u9gI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6ae65b-368b-4de8-be38-b2709f384050_2048x1273.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!u9gI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6ae65b-368b-4de8-be38-b2709f384050_2048x1273.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">An example of a watermark arranged in a chessboard order</figcaption></figure></div><h4>Rotating a watermark <em>(Pro version only)</em></h4><p>Another way to customize a watermark is to rotate it. Now, with version 3.24.0, imgproxy Pro supports the <code>watermark_rotate</code> processing option, which rotates the watermark by the specified angle. For more details, check the <a href="https://docs.imgproxy.net/latest/usage/processing#watermark-rotate">documentation</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mIFb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bffc656-6ed6-4c77-a4fd-cebb13744c38_2048x1273.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mIFb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bffc656-6ed6-4c77-a4fd-cebb13744c38_2048x1273.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mIFb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bffc656-6ed6-4c77-a4fd-cebb13744c38_2048x1273.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mIFb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bffc656-6ed6-4c77-a4fd-cebb13744c38_2048x1273.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mIFb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bffc656-6ed6-4c77-a4fd-cebb13744c38_2048x1273.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mIFb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bffc656-6ed6-4c77-a4fd-cebb13744c38_2048x1273.jpeg" width="1456" height="905" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4bffc656-6ed6-4c77-a4fd-cebb13744c38_2048x1273.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:905,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:349346,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mIFb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bffc656-6ed6-4c77-a4fd-cebb13744c38_2048x1273.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mIFb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bffc656-6ed6-4c77-a4fd-cebb13744c38_2048x1273.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mIFb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bffc656-6ed6-4c77-a4fd-cebb13744c38_2048x1273.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mIFb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bffc656-6ed6-4c77-a4fd-cebb13744c38_2048x1273.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">An example of a rotated watermark</figcaption></figure></div><h4>Faster AI features <em>(Pro version only)</em></h4><p>We significantly improved the AI feature speed in imgproxy Pro v3.25.0. Utilizing the best practices of running neural networks on CPUs, we made object detection up to 5 times faster on AMD64 architecture.</p><h4>Wider support for object detection AI models <em>(Pro version only)</em></h4><p>We introduced support for object detection using the YOLOv4 model a long time ago in imgproxy Pro version 3.0.0. Until recently, imgproxy Pro supported object detection models only in the DarkNet format, which had a couple of significant drawbacks:</p><ul><li><p>Models in the DarkNet format were pretty hard to train.</p></li><li><p>All the new versions of YOLO are developed with PyTorch or Tensorflow and couldn&#8217;t be exported to the DarkNet format.</p></li></ul><p>We're glad to announce that starting from version 3.25.0, imgproxy Pro supports object detection models in the highly sought-after ONNX format. This includes all the numbered YOLO versions from YOLOv4 to YOLOv10, as well as YOLOX and YOLO-NAS.</p><p>Check out our <a href="https://docs.imgproxy.net/latest/features/object_detection#onnx-model-format">Object Detection guide</a> to find out how to use models in the ONNX format with imgproxy.</p><h4>New face detection model <em>(Pro version only)</em></h4><p>imgproxy Pro distribution includes a preconfigured object detection model trained to detect human faces. For a long time, it was a YOLOv4-tiny model. However, the YOLO models family has elevated significantly in recent years, making our face detection model outdated. Now, imgproxy Pro has faster neural network execution and ONNX format support. It's time for an upgrade.</p><p>Starting with version 3.25.0, imgproxy Pro includes a more precise object detection model trained on a custom-built dataset to detect human faces.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KrvG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546d7a09-c5bd-4be1-9057-a842b7da05ed_1024x683.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KrvG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546d7a09-c5bd-4be1-9057-a842b7da05ed_1024x683.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KrvG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546d7a09-c5bd-4be1-9057-a842b7da05ed_1024x683.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KrvG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546d7a09-c5bd-4be1-9057-a842b7da05ed_1024x683.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KrvG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546d7a09-c5bd-4be1-9057-a842b7da05ed_1024x683.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KrvG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546d7a09-c5bd-4be1-9057-a842b7da05ed_1024x683.jpeg" width="1024" height="683" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/546d7a09-c5bd-4be1-9057-a842b7da05ed_1024x683.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:683,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132580,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KrvG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546d7a09-c5bd-4be1-9057-a842b7da05ed_1024x683.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KrvG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546d7a09-c5bd-4be1-9057-a842b7da05ed_1024x683.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KrvG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546d7a09-c5bd-4be1-9057-a842b7da05ed_1024x683.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KrvG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F546d7a09-c5bd-4be1-9057-a842b7da05ed_1024x683.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://unsplash.com/photos/group-of-people-sitting-on-black-bench-aWZmwUjrjPs">Original photo by Dr Josiah Sarpong</a></figcaption></figure></div><h2>New articles</h2><h4>Image processing servers benchmark</h4><p>We picked the three most popular image processing servers and ran <a href="https://imgproxy.net/blog/image-processing-servers-benchmark/">a series of benchmarks</a>. Check out what tool won the race.</p><h4>Implementing an image processing service using imgproxy</h4><p>Tufan Karadere from <a href="https://www.trendyol.com/">Trendyol</a> wrote a <a href="https://medium.com/trendyol-tech/implementing-an-image-processing-service-using-imgproxy-e4755a47f3c5">comprehensive story</a> of implementing their image processing pipeline using imgproxy. Lots of details about the architecture, some interesting benchmarks, and good insights. </p><h4>imgproxy + Apache APISIX</h4><p>Nicolas Frankel started a series of blog posts on how to integrate imgproxy with Apache APISIX.</p><p>&#8226; <a href="https://blog.frankel.ch/resize-images-on-the-fly/">Resizing images on-the-fly</a></p><p>&#8226; <a href="https://blog.frankel.ch/dynamic-watermarking/2/">Dynamic watermarking with imgproxy and Apache APISIX</a></p><h4>Run imgproxy container on Azure App Service with Front Door CDN</h4><p>A <a href="https://krompaco.nu/2024/05/imgproxy-container-on-azure-app-service-with-front-door-cdn/">guide</a> on running imgproxy on Microsoft Azure by Johan Kronberg.</p><h4>Dynamically Resize and Optimize WordPress Images with imgproxy</h4><p>A useful <a href="https://josh.blog/2024/07/dynamically-resize-and-optimize-wordpress-images-with-imgproxy">blog post</a> by Josh Betz about using imgproxy with WordPress. </p><h2>Tell us what you think</h2><p>And finally, we would love your input to help us improve imgproxy. <a href="https://1xxlif3hse7.typeform.com/to/gvQdPXL7">Answer 5 simple questions</a> to help us understand how you use and host imgproxy. The survey is anonymous, but you can leave your email if you want to stay in touch.</p>]]></content:encoded></item><item><title><![CDATA[imgproxy News #7]]></title><description><![CDATA[AWS Lambda support, source images hashsum checking, improved video_thumbnail_tile processing option, and more!]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-7</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-7</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Tue, 27 Feb 2024 14:42:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YihE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3563f12c-ee77-4d12-8f68-d98619ca96b1_1829x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A new version of imgproxy is out and we're excited to share what it brings to the table!</p><h2><strong>AWS Lambda support</strong></h2><p>Since version&nbsp;<code>3.22.0</code>, official imgproxy Docker images include an&nbsp;<a href="https://github.com/awslabs/aws-lambda-web-adapter">AWS Lambda adapter</a>. This means that you can now run imgproxy Docker images on&nbsp;<a href="https://aws.amazon.com/lambda/">AWS Lambda</a>, which is a great way to save on infrastructure costs and scale your image processing needs.</p><p>AWS Lambda is a serverless computing service that runs your code in response to events and automatically manages the underlying compute resources for you.</p><p>We also wrote a comprehensive guide on how to run imgproxy on AWS Lambda and get almost free image processing. Check it out:</p><p><a href="https://imgproxy.net/blog/almost-free-image-processing-with-imgproxy-and-aws-lambda/">imgproxy.net/blog/almost-free-image-processing-with-imgproxy-and-aws-lambda/</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YihE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3563f12c-ee77-4d12-8f68-d98619ca96b1_1829x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YihE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3563f12c-ee77-4d12-8f68-d98619ca96b1_1829x1024.png 424w, https://substackcdn.com/image/fetch/$s_!YihE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3563f12c-ee77-4d12-8f68-d98619ca96b1_1829x1024.png 848w, https://substackcdn.com/image/fetch/$s_!YihE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3563f12c-ee77-4d12-8f68-d98619ca96b1_1829x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!YihE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3563f12c-ee77-4d12-8f68-d98619ca96b1_1829x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YihE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3563f12c-ee77-4d12-8f68-d98619ca96b1_1829x1024.png" width="1456" height="815" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3563f12c-ee77-4d12-8f68-d98619ca96b1_1829x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:815,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3068214,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YihE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3563f12c-ee77-4d12-8f68-d98619ca96b1_1829x1024.png 424w, https://substackcdn.com/image/fetch/$s_!YihE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3563f12c-ee77-4d12-8f68-d98619ca96b1_1829x1024.png 848w, https://substackcdn.com/image/fetch/$s_!YihE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3563f12c-ee77-4d12-8f68-d98619ca96b1_1829x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!YihE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3563f12c-ee77-4d12-8f68-d98619ca96b1_1829x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2><strong>New features</strong></h2><h4><strong>Checking image hashsums&nbsp;</strong><em><strong>(Pro version only)</strong></em></h4><p>We've added a new feature to <a href="https://imgproxy.net/#request">the Pro version of imgproxy </a>that allows you to check the hashsum of the original image before processing it. This is useful when you want to ensure that the image you're processing has not changed. You can enable this check by using the&nbsp;<a href="https://docs.imgproxy.net/latest/usage/processing#hashsum">hashsum</a>&nbsp;processing or info option.</p><p>We also added a new&nbsp;<a href="https://docs.imgproxy.net/latest/usage/getting_info#calc-hashsums">calc_hashsums</a>&nbsp;info option that allows you to calculate hashsums for the original images.</p><h4><strong>New config: IMGPROXY_VIDEO_THUMBNAIL_TILE_AUTO_KEYFRAMES&nbsp;</strong><em><strong>(Pro version only)</strong></em></h4><p>Generating a tiled sprite from your videos using the&nbsp;<a href="https://docs.imgproxy.net/latest/usage/processing#video-thumbnail-tile">video_thumbnail_tile</a>&nbsp;processing option may be dramatically faster if you tell imgproxy to use only keyframes as tiles by using the&nbsp;<code>IMGPROXY_VIDEO_THUMBNAIL_KEYFRAMES</code>&nbsp;configuration option or the&nbsp;<code>video_thumbnail_keyframes</code>&nbsp;processing option. However, if the time step between tiles is smaller than the time step between keyframes, some keyframes may be used for more than one tile.</p><p>The&nbsp;<a href="https://docs.imgproxy.net/latest/configuration/options#IMGPROXY_VIDEO_THUMBNAIL_TILE_AUTO_KEYFRAMES">IMGPROXY_VIDEO_THUMBNAIL_TILE_AUTO_KEYFRAMES</a>&nbsp;configuration option solves this issue. When it is set to&nbsp;<code>true</code>&nbsp;and the time step between tiles is greater than the interval between keyframes, imgproxy will use only keyframes. This allows to speed up&nbsp;<code>video_thumbnail_tile</code>&nbsp;for long steps between tiles yet keep it precise for short ones.</p><h4><strong>Automatic calculation of video_thumbnail_tile step&nbsp;</strong><em><strong>(Pro version only)</strong></em></h4><p>Before the version&nbsp;<code>3.22.0</code>, if you wanted to evenly distribute <a href="https://docs.imgproxy.net/latest/usage/processing#video-thumbnail-tile">video_thumbnail_tile</a> timestamps over the whole video duration, you had to calculate the step manually. This is pretty tricky, especially if you don't know the video duration in advance.</p><p>Starting from the version&nbsp;<code>3.22.0</code>, it's not a problem anymore. Just set any negative value for the&nbsp;<code>step</code>&nbsp;argument of the&nbsp;<code>video_thumbnail_tile</code>&nbsp;processing option and imgproxy will calculate the step automatically based on the video duration and the number of tiles!</p><h4>New config: IMGPROXY_TRUSTED_SIGNATURES</h4><p>The <a href="https://docs.imgproxy.net/latest/configuration/options#IMGPROXY_TRUSTED_SIGNATURES">IMGPROXY_TRUSTED_SIGNATURES</a> configuration option allows you to configure a list of URL signatures that imgproxy will trust without checking.</p><p>This is useful when you want to enable signature checking but you have a bunch of unsigned imgproxy URLs stored in your system. Let's assume that you used <code>unsafe</code> as the signature part of your imgproxy URLs. You can set <code>IMGPROXY_TRUSTED_SIGNATURES=unsafe</code> and imgproxy will trust all the URLs with <code>unsafe</code> in the signature part. When you finish signing all your imgproxy URLs, you can unset the <code>IMGPROXY_TRUSTED_SIGNATURES</code> configuration option to enter the full-security mode.</p><div><hr></div><h2><strong>Changes and fixes</strong></h2><p>Here are some notable changes and fixes from the latest release:</p><ul><li><p>The offsets in the&nbsp;<code>gravity</code>&nbsp;and&nbsp;<code>watermark</code>&nbsp;processing options now can be relative.</p></li><li><p>Downloading error reporting is revised to be more informative.</p></li><li><p>Successful health checks are not logged anymore to reduce the noise in the logs.</p></li><li><p>The&nbsp;<code>IMGPROXY_TTL</code>&nbsp;configuration option now can be set to&nbsp;<code>0</code>&nbsp;to disable client-side caching.</p></li><li><p>Animated image processing is optimized to reduce memory usage.<br><br></p></li></ul>]]></content:encoded></item><item><title><![CDATA[imgproxy News #6]]></title><description><![CDATA[Better structured, better searchable, better looking documentation. HEIC output is back! S3 client-side decryption support. Generate thumbnail tiles from videos, and more.]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-6</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-6</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Fri, 24 Nov 2023 14:59:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e8c3963-e186-4d04-8455-07f12d8da017_2320x1030.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Revamped documentation with a better search</h2><p>Our users love <a href="https://docs.imgproxy.net/">imgproxy documentation</a> and we love our users &#129782; That's why we revamped our whole documentation website to make our users even happier. Here are some things we achieved:</p><ul><li><p>Faster loading, thanks to <a href="https://docusaurus.io/">Docusaurus</a> and its static build</p></li><li><p>Better search, thanks to <a href="https://www.algolia.com/">Algolia</a> and their <a href="https://docsearch.algolia.com/">DocSearch</a> initiative</p></li><li><p>Better look, thanks to <a href="https://twitter.com/romanshamin_en">Roman Shamin</a> from <a href="https://evilmartians.com/">Evil Martians</a> and his gorgeous <a href="https://evilmartians.com/products/martian-grotesk">Martian Grotesk</a> font</p></li><li><p>Nice in-page navigation</p></li><li><p>Syntax highlighting for processing options and URL examples</p></li></ul><p>Check it out: <a href="https://docs.imgproxy.net/">docs.imgproxy.net</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sd1C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e644304-ced7-4d0d-a723-9033a40368b7_1200x675.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sd1C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e644304-ced7-4d0d-a723-9033a40368b7_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!sd1C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e644304-ced7-4d0d-a723-9033a40368b7_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!sd1C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e644304-ced7-4d0d-a723-9033a40368b7_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!sd1C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e644304-ced7-4d0d-a723-9033a40368b7_1200x675.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sd1C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e644304-ced7-4d0d-a723-9033a40368b7_1200x675.jpeg" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e644304-ced7-4d0d-a723-9033a40368b7_1200x675.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:97499,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sd1C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e644304-ced7-4d0d-a723-9033a40368b7_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!sd1C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e644304-ced7-4d0d-a723-9033a40368b7_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!sd1C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e644304-ced7-4d0d-a723-9033a40368b7_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!sd1C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e644304-ced7-4d0d-a723-9033a40368b7_1200x675.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>New features</h2><h4>Outputting HEIC is back!</h4><p>Thanks to <a href="https://ultravideo.fi/">Ultra Video Group</a> and their HEVC encoder&#8212;<a href="https://github.com/ultravideo/kvazaar">Kvazaar</a>&#8212;we managed to bring saving images to HEIC format back to imgproxy! Now imgproxy users can target this native iOS image format in their applications. Please, give <a href="https://github.com/ultravideo/kvazaar">Kvazaar</a> some stars to pay respect.</p><h4>Client-side decryption support for S3 integration</h4><p>Security is one of the reasons thousands of developers all over the world use imgproxy. Many of them take security pretty seriously by encrypting images in their storage. And some of them use client-side encryption so even storage vendor couldn't decrypt their images. That's why <a href="https://github.com/gjtorikian">Garen Torikian</a> added client-side decryption to S3 integration to imgproxy. Just set the <a href="https://docs.imgproxy.net/latest/configuration/options#IMGPROXY_S3_USE_DECRYPTION_CLIENT">IMGPROXY_S3_USE_DECRYPTION_CLIENT</a> environment variable to <code>true</code>, and imgproxy will decrypt your encrypted images on the fly!</p><h4>New processing option: video_thumbnail_tile <em>(Pro version only)</em></h4><p>The <code>video_thumbnail_tile</code> processing option allows you to generate a tiled sprite from your videos. You can then step through these frames to build animated video previews.</p><p><a href="https://docs.imgproxy.net/latest/usage/processing#video-thumbnail-tile">docs.imgproxy.net/latest/usage/processing#video-thumbnail-tile</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!poAZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F821a3c6c-bcc7-4379-8592-e4a8f13a41c9_1000x565.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!poAZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F821a3c6c-bcc7-4379-8592-e4a8f13a41c9_1000x565.jpeg 424w, https://substackcdn.com/image/fetch/$s_!poAZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F821a3c6c-bcc7-4379-8592-e4a8f13a41c9_1000x565.jpeg 848w, https://substackcdn.com/image/fetch/$s_!poAZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F821a3c6c-bcc7-4379-8592-e4a8f13a41c9_1000x565.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!poAZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F821a3c6c-bcc7-4379-8592-e4a8f13a41c9_1000x565.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!poAZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F821a3c6c-bcc7-4379-8592-e4a8f13a41c9_1000x565.jpeg" width="1000" height="565" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/821a3c6c-bcc7-4379-8592-e4a8f13a41c9_1000x565.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:565,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:115816,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!poAZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F821a3c6c-bcc7-4379-8592-e4a8f13a41c9_1000x565.jpeg 424w, https://substackcdn.com/image/fetch/$s_!poAZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F821a3c6c-bcc7-4379-8592-e4a8f13a41c9_1000x565.jpeg 848w, https://substackcdn.com/image/fetch/$s_!poAZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F821a3c6c-bcc7-4379-8592-e4a8f13a41c9_1000x565.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!poAZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F821a3c6c-bcc7-4379-8592-e4a8f13a41c9_1000x565.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">An example of a tiled sprite generated from the Big Buck Bunny video: <a href="https://www.youtube.com/watch?v=aqz-KE-bpKQ">https://www.youtube.com/watch?v=aqz-KE-bpKQ</a></figcaption></figure></div><h4>New config: IMGPROXY_VIDEO_THUMBNAIL_KEYFRAMES <em>(Pro version only)</em></h4><p>The <a href="https://docs.imgproxy.net/latest/configuration/options#IMGPROXY_VIDEO_THUMBNAIL_KEYFRAMES">IMGPROXY_VIDEO_THUMBNAIL_KEYFRAMES</a> configuration option and the <a href="https://docs.imgproxy.net/latest/usage/processing#video-thumbnail-keyframes">video_thumbnail_keyframes</a> processing option allow you to make imgproxy use only key frames when generating video thumbnails. This increases the speed of video thumbnail generation since imgproxy doesn't have to decode intermediate frames. However, the used frame timestamp will not be exactly equal to the requested one. We highly recommend using these options when you just want to make a video thumbnail and don't actually care which exact frame will be used.</p><h4>New info options <em>(Pro version only)</em></h4><p>We added more info options so you can get more information about your images:</p><ul><li><p><a href="https://docs.imgproxy.net/latest/usage/getting_info#colorspace">colorspace</a>: returns the color space of your image (<code>srgb</code>, <code>cmyk</code>, etc)</p></li><li><p><a href="https://docs.imgproxy.net/latest/usage/getting_info#bands">bands</a>: returns the number of bands (a.k.a. color channels) in your image</p></li><li><p><a href="https://docs.imgproxy.net/latest/usage/getting_info#sample-format">sample_format</a>: returns the sample format of the image (<code>uchar</code>, <code>ushort</code>, <code>float</code>, etc)</p></li><li><p><a href="https://docs.imgproxy.net/latest/usage/getting_info#pages-number">pages_number</a>: returns the number of pages/animation frames in the image</p></li><li><p><a href="https://docs.imgproxy.net/latest/usage/getting_info#alpha">alpha</a>: checks if the image has an alpha channel and actual transparency</p></li></ul><div><hr></div><h2>New articles</h2><h4>Perfect cut: smart image resizing with imgproxy</h4><p>Explore the path of imagegiri<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> and learn how to automatically crop your images on the fly while always keeping the most important content in the frame. Our new guide walks you through all the smart resizing functionality available in imgproxy and imgproxy Pro (from the built-in libvips smart crop to our AI model support) and helps you find the right strategy for your use case.</p><p><a href="https://imgproxy.net/blog/perfect-cut-smart-image-resizing-with-imgproxy/">imgproxy.net/blog/perfect-cut-smart-image-resizing-with-imgproxy</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UE1H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e8c3963-e186-4d04-8455-07f12d8da017_2320x1030.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UE1H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e8c3963-e186-4d04-8455-07f12d8da017_2320x1030.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UE1H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e8c3963-e186-4d04-8455-07f12d8da017_2320x1030.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UE1H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e8c3963-e186-4d04-8455-07f12d8da017_2320x1030.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UE1H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e8c3963-e186-4d04-8455-07f12d8da017_2320x1030.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UE1H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e8c3963-e186-4d04-8455-07f12d8da017_2320x1030.jpeg" width="1456" height="646" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e8c3963-e186-4d04-8455-07f12d8da017_2320x1030.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:646,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;https://imgproxy.net/static/339370ae4e8b38166e0ccc9c10ad4bb0/f145d/image.jpg&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="https://imgproxy.net/static/339370ae4e8b38166e0ccc9c10ad4bb0/f145d/image.jpg" title="https://imgproxy.net/static/339370ae4e8b38166e0ccc9c10ad4bb0/f145d/image.jpg" srcset="https://substackcdn.com/image/fetch/$s_!UE1H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e8c3963-e186-4d04-8455-07f12d8da017_2320x1030.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UE1H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e8c3963-e186-4d04-8455-07f12d8da017_2320x1030.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UE1H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e8c3963-e186-4d04-8455-07f12d8da017_2320x1030.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UE1H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e8c3963-e186-4d04-8455-07f12d8da017_2320x1030.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>imgproxy Pro helps Product-Live streamline retail image management</h4><p>See why <a href="https://www.product-live.com/">Product-Live</a>, a platform that helps suppliers and retailers exchange rich product information, chose imgproxy Pro when they ventured on a quest to replace their legacy Python-based image processing pipeline.</p><p><a href="https://imgproxy.net/blog/imgproxy-pro-helps-product-live-streamline-retail-image-management/">imgproxy.net/blog/imgproxy-pro-helps-product-live-streamline-retail-image-management</a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Tameshigiri is the Japanese art of target test cutting.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[imgproxy News #5]]></title><description><![CDATA[Flexible and transparent pricing for Pro, even more ways to configure imgproxy in the cloud, new image information features including BlurHash support, and our thoughts on image processing SaaS.]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-5</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-5</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Tue, 10 Oct 2023 15:07:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!M2iI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67db07c6-a6e9-4a98-b5a5-4424d298555e_2548x1074.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s been a while since our last newsletter, so it&#8217;s high time to share everything we&#8217;ve been working on for the past few months: from the revamped pricing model for imgproxy Pro that makes it easier to right-size your license, to the most notable features from the <a href="https://github.com/imgproxy/imgproxy/releases">two releases</a> we've had since our last check-in.</p><div><hr></div><h2>A slider to not let your performance slide</h2><p>Previously, to become our imgproxy Pro customer you were to choose either a Startup or Business plan&#8212;each with its respective concurrency limitations&#8212;or upgrade to our unlimited Enterprise offering with the price on request. We thought that might be a bit limiting, especially for the fast-growing businesses, so we&#8217;ve revamped our pricing model around the concept of <em>workers</em>&#8212;the more workers you purchase, the more images your imgproxy Pro instances will handle simultaneously, no queuing required. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://imgproxy.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading imgproxy News! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M2iI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67db07c6-a6e9-4a98-b5a5-4424d298555e_2548x1074.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M2iI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67db07c6-a6e9-4a98-b5a5-4424d298555e_2548x1074.png 424w, https://substackcdn.com/image/fetch/$s_!M2iI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67db07c6-a6e9-4a98-b5a5-4424d298555e_2548x1074.png 848w, https://substackcdn.com/image/fetch/$s_!M2iI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67db07c6-a6e9-4a98-b5a5-4424d298555e_2548x1074.png 1272w, https://substackcdn.com/image/fetch/$s_!M2iI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67db07c6-a6e9-4a98-b5a5-4424d298555e_2548x1074.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M2iI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67db07c6-a6e9-4a98-b5a5-4424d298555e_2548x1074.png" width="1456" height="614" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67db07c6-a6e9-4a98-b5a5-4424d298555e_2548x1074.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:614,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2331536,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M2iI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67db07c6-a6e9-4a98-b5a5-4424d298555e_2548x1074.png 424w, https://substackcdn.com/image/fetch/$s_!M2iI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67db07c6-a6e9-4a98-b5a5-4424d298555e_2548x1074.png 848w, https://substackcdn.com/image/fetch/$s_!M2iI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67db07c6-a6e9-4a98-b5a5-4424d298555e_2548x1074.png 1272w, https://substackcdn.com/image/fetch/$s_!M2iI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67db07c6-a6e9-4a98-b5a5-4424d298555e_2548x1074.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A brand new pricing slider at imgproxy.net</figcaption></figure></div><p>You can settle on the number of workers you require during the <a href="https://imgproxy.net/#request">free imgproxy Pro trial</a>&#8212;it comes with no limitations so you can freely test it in production and see which plan suits your needs best.</p><div><hr></div><h2>New features</h2><h4>Multi-region mode for AWS S3 integration</h4><p>Until recently, imgproxy could access AWS S3 buckets located only in a single region configured with <code>IMGPROXY_S3_REGION</code> or <code>AWS_REGION</code>. That's not the case anymore: meet the <a href="https://docs.imgproxy.net/latest/serving_files_from_s3?id=multi-region-mode">multi-region mode</a>!</p><p>Simply enable the multi-region mode using the <code>IMGPROXY_S3_MULTI_REGION</code> config, and imgproxy will be able to access S3 buckets in any AWS region. Read more in our docs:</p><p><a href="https://docs.imgproxy.net/serving_files_from_s3?id=multi-region-mode">docs.imgproxy.net/serving_files_from_s3?id=multi-region-mode</a></p><h4>Loading environment variables from remote sources</h4><p>imgproxy is <a href="https://12factor.net/">Twelve-Factor-App</a>-ready and can be configured using environment variables. However, the way of providing and managing those environment variables may be challenging. That's why we&#8217;ve added a few ways to load them from remote sources.</p><p>Currently, imgproxy can load environment variables from:</p><ul><li><p><a href="https://docs.imgproxy.net/loading_environment_variables?id=local-file">Local files</a></p></li><li><p><a href="https://docs.imgproxy.net/loading_environment_variables?id=aws-secrets-manager">AWS Secrets Manager</a></p></li><li><p><a href="https://docs.imgproxy.net/loading_environment_variables?id=aws-systems-manager-parameter-store">AWS Systems Manager Parameters Store</a></p></li><li><p><a href="https://docs.imgproxy.net/loading_environment_variables?id=google-cloud-secret-manager">Google Cloud Secret Manager</a></p></li></ul><p>...and this list will grow!</p><p>Read all the details in the docs:</p><p><a href="https://docs.imgproxy.net/loading_environment_variables">docs.imgproxy.net/loading_environment_variables</a></p><h4>Getting more info about your images <em>(Pro version only)</em></h4><p>The <code>/info</code> endpoint is one of the most beloved features of imgproxy Pro. And now we&#8217;ve upped our game! Until the latest release, imgproxy was able to extract only some basic information about images like their format, dimensions, and metadata, yet many of you were looking for more. We&#8217;ve heard you&#8212;meet <a href="https://docs.imgproxy.net/getting_the_image_info?id=info-options">info options</a>!</p><p>Info options allow you to request additional information about your images:</p><ul><li><p>The <a href="https://docs.imgproxy.net/getting_the_image_info?id=detect-objects">detect_objects</a> option allows you to get information about objects detected in the image.</p></li><li><p>The <a href="https://docs.imgproxy.net/getting_the_image_info?id=crop">crop</a> option returns crop coordinates based on the provided dimensions and gravity.</p></li><li><p>The <a href="https://docs.imgproxy.net/getting_the_image_info?id=palette">palette</a> option allows you to generate an RGBA palette from the image.</p></li><li><p>The <a href="https://docs.imgproxy.net/getting_the_image_info?id=average">average</a> option finds the average color of the image.</p></li><li><p>The <a href="https://docs.imgproxy.net/getting_the_image_info?id=dominant-colors">dominant_colors</a> option finds the dominant colors of the image.</p></li><li><p>The <a href="https://docs.imgproxy.net/getting_the_image_info?id=blurhash">blurhash</a> option calculates the <a href="https://blurha.sh/">BlurHash</a> string for the image which is perfect for generating placeholders.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tPDM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a56b63-7bc0-45b9-84b5-682f51844e14_1744x822.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tPDM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a56b63-7bc0-45b9-84b5-682f51844e14_1744x822.png 424w, https://substackcdn.com/image/fetch/$s_!tPDM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a56b63-7bc0-45b9-84b5-682f51844e14_1744x822.png 848w, https://substackcdn.com/image/fetch/$s_!tPDM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a56b63-7bc0-45b9-84b5-682f51844e14_1744x822.png 1272w, https://substackcdn.com/image/fetch/$s_!tPDM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a56b63-7bc0-45b9-84b5-682f51844e14_1744x822.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tPDM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a56b63-7bc0-45b9-84b5-682f51844e14_1744x822.png" width="1456" height="686" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0a56b63-7bc0-45b9-84b5-682f51844e14_1744x822.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:686,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:177248,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!tPDM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a56b63-7bc0-45b9-84b5-682f51844e14_1744x822.png 424w, https://substackcdn.com/image/fetch/$s_!tPDM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a56b63-7bc0-45b9-84b5-682f51844e14_1744x822.png 848w, https://substackcdn.com/image/fetch/$s_!tPDM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a56b63-7bc0-45b9-84b5-682f51844e14_1744x822.png 1272w, https://substackcdn.com/image/fetch/$s_!tPDM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a56b63-7bc0-45b9-84b5-682f51844e14_1744x822.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Keep in mind that while getting basic information does not require fully downloading and processing the image, getting the additional info does.</p><p>And, of course, info options allow you to disable unneeded information fields so you can make your responses smaller.</p><p>Get all the juicy technical details in our documentation and give it a whirl!</p><p><a href="https://docs.imgproxy.net/getting_the_image_info?id=info-options">docs.imgproxy.net/getting_the_image_info?id=info-options</a></p><div><hr></div><h2>Keep the cake. You can eat it too</h2><p>As one of our prospective clients has recently put it, &#8220;<em>image processing SaaS wants to have a cake and eat it too</em>&#8221;, meaning that pricing for API-driven services like Cloudinary and Imgix quickly goes through the roof once you outgrow the introductory tier.</p><p>We are happy to share yet another success story of a customer saving big on image processing after making a switch to the self-hosted imgproxy setup that has no hidden costs: </p><p><a href="https://imgproxy.net/blog/substack-saved-90-on-image-processing-infrastructure-with-imgproxy/">Substack saved 90% on image processing infrastructure with imgproxy</a>. </p><p>We have also listed the main reasons to prefer imgproxy Pro to an image-processing SaaS on a separate page, feel free to share it with the stakeholders at your company if you&#8217;re looking for a switch: </p><p><a href="https://imgproxy.net/imgproxy-vs-saas/">Choose imgproxy Pro over image-processing SaaS to harness infinite cloud savings and regain data control</a>.</p><p>Also, feel free to check out the revamped <a href="https://imgproxy.net/blog/">imgproxy blog</a> that contains even more case studies and links to community tutorials.</p><div><hr></div><h2>GitHub Sponsorship for open source version</h2><p>Last but not least, if you want to support our open source core but have no plans to upgrade to a commercial imgproxy Pro license&#8212;you can now easily <a href="https://github.com/sponsors/imgproxy">sponsor  imgproxy on GitHub</a>. This support enables us to continue dedicating our time and resources to the forever free open source version of our product.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://imgproxy.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading imgproxy News! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[imgproxy News #4]]></title><description><![CDATA[The new imgproxy release has been rolled out, and we&#8217;re excited to tell you about all its changes!]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-4</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-4</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Fri, 10 Mar 2023 14:04:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0IPB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ecbc146-452a-42ec-b621-e6b49d138a71_1024x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The new imgproxy release has been rolled out, and we&#8217;re excited to tell you about all its changes!</p><p>Also, you might&#8217;ve noticed that imgproxy News is now running on <a href="https://substack.com/">Substack</a>. But did you know that Substack also uses imgproxy? Talk about some great collaboration!</p><div><hr></div><h2>New Features</h2><h4>Advanced smart cropping <em>(Pro version only)</em></h4><p>Pretty much everyone knows that imgproxy has smart cropping functionality &#8211; many use it and love it. But there&#8217;s no such thing as perfection when you&#8217;re perfectionists, so we&#8217;ve gone even further and made our smart cropping even smarter. We used some dark magic like cascade classifiers, eigenvalues, and corner detectors to ensure that the most important parts of the image won't be cut out.</p><p>Meet advanced smart cropping!</p><p><em><a href="https://docs.imgproxy.net/configuration?id=smart-crop">docs.imgproxy.net/configuration?id=smart-crop</a></em></p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ecbc146-452a-42ec-b621-e6b49d138a71_1024x1024.jpeg&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a4f27d6-4ab9-418c-a0a3-cc1178d0431a_1024x1024.png&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d5808da-fa97-4bc1-903e-eb01941c077b_1024x1024.jpeg&quot;}],&quot;caption&quot;:&quot;Advanced smart crop in action&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16b87284-7636-4c56-bb95-fd88a872c1a5_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><h4>Redefining the security restrictions with processing options</h4><p>Users love imgproxy for its security, after all, it allows users to tune its security restrictions for each individual case. But what if you wanted even more flexibility? For example, let&#8217;s say you want to tighten (or lighten) some security limits for a collection of users. Well, now you can!</p><p>By using the <code>IMGPROXY_ALLOW_SECURITY_OPTIONS</code> config, you can enable security-related processing options that can be used to redefine security limits per request. Here's the list of these options:</p><ul><li><p><a href="https://docs.imgproxy.net/generating_the_url?id=max-src-resolution">max_src_resolution</a></p></li><li><p><a href="https://docs.imgproxy.net/generating_the_url?id=max-src-file-size">max_src_file_size</a></p></li><li><p><a href="https://docs.imgproxy.net/generating_the_url?id=max-animation-frames">max_animation_frames</a></p></li><li><p><a href="https://docs.imgproxy.net/generating_the_url?id=max-animation-frame-resolution">max_animation_frame_resolution</a></p></li></ul><p>&#9888;&#65039; Since <code>IMGPROXY_ALLOW_SECURITY_OPTIONS</code> allows bypassing your security restrictions, don&#8217;t set it to true unless you are completely sure that an attacker can&#8217;t change your imgproxy URLs. The recommended way is to use URL signatures.</p><h4><strong>New processing option: extend_aspect_ratio</strong></h4><p>This new processing option tells imgproxy to extend the resulting image so it shares the aspect ratio of the requested size. Unlike the <code>extend</code> processing option, <code>extend_aspect_ratio</code> doesn't extend the resulting image to match the requested size completely.</p><p><em><a href="https://docs.imgproxy.net/generating_the_url?id=extend-aspect-ratio">docs.imgproxy.net/generating_the_url?id=extend-aspect-ratio</a></em></p><div><hr></div><h2>Changes and fixes</h2><p>Here are some notable changes and fixes from the latest release:</p><ul><li><p>We optimized imgproxy so it performs faster and uses less memory, especially when dealing with animated images.</p></li><li><p>Our fellow community members helped us improve SVG sanitization. Attackers shall not pass!</p></li><li><p>Also thanks to our community members, you now can use Managed Identity or Service Principal to give imgproxy access to your Azure Blob Storage buckets.</p></li><li><p>The <code>IMGPROXY_VIDEO_THUMBNAIL_SECOND</code> config and the <code>video_thumbnail_second</code> processing option now can have floating-point numbers as values.</p></li><li><p>We analyzed how browsers render animated images to ensure they are rendered correctly after MP4 conversion.</p></li></ul><div><hr></div><h2>New Article</h2><p>Siraj Mohammad wrote a mega-comprehensive post that demonstrates deploying imgproxy to Google Cloud for serving next-gen image formats with on-the-fly transformations. He uses Google Cloud services&#8211;Cloud CDN, Cloud Run, Cloud Storage, and Artifact Registry&#8211;to build production-ready imgproxy installation. Great work, Siraj!</p><p><em><a href="https://medium.com/@sirajmohammad/serving-next-generation-images-using-google-cloud-cdn-cloud-run-and-image-proxy-4d2e65d87fbc">medium.com/@sirajmohammad/serving-next-generation-images-using-google-cloud-cdn-cloud-run-and-image-proxy-4d2e65d87fbc</a></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M-Hp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a418929-aad8-4e51-a307-8671ed8ef1f7_1560x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M-Hp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a418929-aad8-4e51-a307-8671ed8ef1f7_1560x720.png 424w, https://substackcdn.com/image/fetch/$s_!M-Hp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a418929-aad8-4e51-a307-8671ed8ef1f7_1560x720.png 848w, https://substackcdn.com/image/fetch/$s_!M-Hp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a418929-aad8-4e51-a307-8671ed8ef1f7_1560x720.png 1272w, https://substackcdn.com/image/fetch/$s_!M-Hp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a418929-aad8-4e51-a307-8671ed8ef1f7_1560x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M-Hp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a418929-aad8-4e51-a307-8671ed8ef1f7_1560x720.png" width="728" height="336" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a418929-aad8-4e51-a307-8671ed8ef1f7_1560x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:672,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:65388,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M-Hp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a418929-aad8-4e51-a307-8671ed8ef1f7_1560x720.png 424w, https://substackcdn.com/image/fetch/$s_!M-Hp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a418929-aad8-4e51-a307-8671ed8ef1f7_1560x720.png 848w, https://substackcdn.com/image/fetch/$s_!M-Hp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a418929-aad8-4e51-a307-8671ed8ef1f7_1560x720.png 1272w, https://substackcdn.com/image/fetch/$s_!M-Hp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a418929-aad8-4e51-a307-8671ed8ef1f7_1560x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[imgproxy News #3: New features and achievements!]]></title><description><![CDATA[We&#8217;ve come a LONG way in 5 years! We want to share just a few of imgproxy&#8217;s news and achievements along the journey. Here&#8217;s to next year and lots more to come!]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-3-new-features-and</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-3-new-features-and</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Tue, 20 Dec 2022 17:36:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!z_f0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2ecb68-f3ff-4caf-b9e3-7c11d902d251_2590x1720.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>We&#8217;ve come a LONG way in 5 years!</strong> We want to share just a few of imgproxy&#8217;s news and achievements along the journey. Here&#8217;s to next year and lots more to come!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z_f0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2ecb68-f3ff-4caf-b9e3-7c11d902d251_2590x1720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z_f0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2ecb68-f3ff-4caf-b9e3-7c11d902d251_2590x1720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!z_f0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2ecb68-f3ff-4caf-b9e3-7c11d902d251_2590x1720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!z_f0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2ecb68-f3ff-4caf-b9e3-7c11d902d251_2590x1720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!z_f0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2ecb68-f3ff-4caf-b9e3-7c11d902d251_2590x1720.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z_f0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2ecb68-f3ff-4caf-b9e3-7c11d902d251_2590x1720.jpeg" width="1456" height="967" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d2ecb68-f3ff-4caf-b9e3-7c11d902d251_2590x1720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:967,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;https://pbs.twimg.com/media/FkHXrjQXwAA4tbJ?format=jpg&amp;name=4096x4096&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="https://pbs.twimg.com/media/FkHXrjQXwAA4tbJ?format=jpg&amp;name=4096x4096" title="https://pbs.twimg.com/media/FkHXrjQXwAA4tbJ?format=jpg&amp;name=4096x4096" srcset="https://substackcdn.com/image/fetch/$s_!z_f0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2ecb68-f3ff-4caf-b9e3-7c11d902d251_2590x1720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!z_f0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2ecb68-f3ff-4caf-b9e3-7c11d902d251_2590x1720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!z_f0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2ecb68-f3ff-4caf-b9e3-7c11d902d251_2590x1720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!z_f0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2ecb68-f3ff-4caf-b9e3-7c11d902d251_2590x1720.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>New Features</h2><h4>Automagic choice of the best resultant format <em>(Pro version only)</em></h4><p>You can use the <code>best</code> value for the <a href="https://docs.imgproxy.net/generating_the_url?id=format">format</a> option or the <a href="https://docs.imgproxy.net/generating_the_url?id=extension">extension</a> to make imgproxy pick the best format for the resultant image.</p><p>imgproxy measures the complexity of the image to choose when it should use lossless or near-lossless encoding. Then imgproxy tries to save the image in multiple formats to pick one with the smallest resulting size.</p><p>Give your users the best image experience!</p><p><em><a href="https://docs.imgproxy.net/latest/best_format">docs.imgproxy.net/latest/best_format</a></em></p><h4>New config &#8211; <code>IMGPROXY_MAX_ANIMATION_FRAME_RESOLUTION</code></h4><p>By default, when the source image is animated, imgproxy summarizes all its frames&#8217; resolutions while checking the source image resolution against the <code>IMGPROXY_MAX_SRC_RESOLUTION</code> value. Yet this is not very handy when you have to serve large GIFs with many frames. That&#8217;s why we added a new config - <code>IMGPROXY_MAX_ANIMATION_FRAME_RESOLUTION</code>. When this config is set and the source image is animated, imgproxy checks each animation frame resolution against this config value and ignores the <code>IMGPROXY_MAX_SRC_RESOLUTION</code> config.</p><p>Using <code>IMGPROXY_MAX_ANIMATION_FRAME_RESOLUTION</code> in combination with <code>IMGPROXY_MAX_ANIMATION_FRAMES</code> allows you to properly limit your animated image sizes without compromising security.</p><h4>New config &#8211; <code>IMGPROXY_WEBP_COMPRESSION</code> <em>(Pro version only)</em></h4><p>This new config allows you to choose the compression type that imgproxy should use when saving images to WebP. The supported values are <code>lossy</code>, <code>near_lossless</code>, and <code>lossless</code>.</p><p>You can also use the <a href="https://docs.imgproxy.net/generating_the_url?id=webp-options">webp_options</a> processing option to redefine this config value per request.</p><h4>Amazon CloudWatch support</h4><p>Amazon Web Services (AWS) is a pretty popular platform among imgproxy users. And one of its features is automatic scaling based on CloudWatch metrics. Now, imgproxy can send its internal metrics &#8211; such as <code>RequestsInProgress</code>, <code>ImagesInProgress</code>, <code>ConcurrencyUtilization</code>, and others &#8211;&nbsp;to CloudFront so you can tune the autoscaling of your imgproxy clusters to perfection.</p><p><em><a href="https://docs.imgproxy.net/latest/cloud_watch">docs.imgproxy.net/latest/cloud_watch</a></em></p><div><hr></div><h2>Fixes</h2><p>There&#8217;s only one bug that was fixed in version 3.12.0, but this bug came to us from the ancient time when all mobile phones had analog keyboards. We fixed the detection of 3GP video format so imgproxy can generate thumbnails for it.</p><p>Don&#8217;t let down those users who are so loyal &#8230;they&#8217;ve been with you for decades!</p><div><hr></div><h2>New Articles</h2><h4>Dynamic Image Optimization with imgproxy on STACKIT Cloud Foundry</h4><p>Thanks to <a href="https://twitter.com/shakalandy">@shakalandy</a> for this excellent article:<strong> </strong>it&#8217;s a clear guide explaining some features that make imgproxy the simple, flexible solution for optimizing and modifying images on the fly. Plus, it has a nice demonstration of potential savings.</p><p><em><a href="https://docs.imgproxy.net/latest/cloud_watch">docs.imgproxy.net/latest/cloud_watch</a></em></p><h4>Photobucket saves big with imgproxy</h4><p>Photobucket CTO Scott Curry talks about their most used imgproxy features, and he shares how switching to imgproxy led to two major savings milestones.</p><p><em><a href="https://imgproxy.medium.com/photobucket-saves-big-with-imgproxy-d26aba91ac13">imgproxy.medium.com/photobucket-saves-big-with-imgproxy-d26aba91ac13</a></em></p>]]></content:encoded></item><item><title><![CDATA[imgproxy News #2]]></title><description><![CDATA[Hey! We have just released some new features for imgproxy and a few more interesting news we would like to tell you about &#128522;]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-2</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-2</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Tue, 22 Nov 2022 17:39:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11410b4f-bf78-4e77-bb89-b18f51da031c_880x496.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey! We have just released some new features for imgproxy and a few more interesting news we would like to tell you about &#128522;</p><div><hr></div><h4>Did you know that across all 30+ countries where you can find Lidl, they use imgproxy for all of their digital leaflets?</h4><p><a href="https://twitter.com/shakalandy">Andreas Lehr</a><strong> </strong>shared his thoughts on it. And we look forward to continuing our conversation with him. Stay tuned!</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/shakalandy/status/1591093816198856704&quot;,&quot;full_text&quot;:&quot;Images account for ~42% of the LCP element for websites - make sure to optimize them.\n\nWe're happily using <span class=\&quot;tweet-fake-link\&quot;>@imgproxy_net</span> to accomplish that: <a class=\&quot;tweet-url\&quot; href=\&quot;https://imgproxy.net/\&quot;>imgproxy.net</a>\n\nImplementation on all <span class=\&quot;tweet-fake-link\&quot;>@lidl</span> TLD sites, e.g: <a class=\&quot;tweet-url\&quot; href=\&quot;https://www.lidl.de/l/prospekte/aktionsprospekt-07-11-2022-12-11-2022/view/flyer/page/1\&quot;>lidl.de/l/prospekte/ak&#8230;</a> &quot;,&quot;username&quot;:&quot;shakalandy&quot;,&quot;name&quot;:&quot;Andreas Lehr&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Fri Nov 11 15:41:41 +0000 2022&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{&quot;full_text&quot;:&quot;Did you know that across all 30+ countries where you can find Lidl, they use imgproxy for all of their digital leaflets. Now that deserves a treat!  Courtesy of @shakalandy https://t.co/839iNR533L&quot;,&quot;username&quot;:&quot;imgproxy_net&quot;,&quot;name&quot;:&quot;imgproxy&quot;},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:4,&quot;like_count&quot;:10,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:false}" data-component-name="Twitter2ToDOM"></div><div><hr></div><h2>New Features</h2><h4><code>feDropShadow</code> SVG filter support</h4><p>SVG rendering is hard, and certain SVG features may not be supported by some renderers. Luckily, we&#8217;ve found a way to bypass our SVG renderer limitations! To illustrate, until recently, imgproxy wasn&#8217;t able to render SVG elements with the <code>feDropShadow</code> filter applied, and now it can! Just set the <code>IMGPROXY_SVG_FIX_UNSUPPORTED</code> config to true. But before doing so, read the little story behind this:</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/darth_sim/status/1584523379117535233&quot;,&quot;full_text&quot;:&quot;A little story explaining why imgproxy is the best &#128578;\n\nOne user complained that lots of their SVGs lose some elements after being rasterized by imgproxy. It turned out that those elements have the feDropShadow filter applied.&quot;,&quot;username&quot;:&quot;darth_sim&quot;,&quot;name&quot;:&quot;Sergey Alexandrovich&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Mon Oct 24 12:33:07 +0000 2022&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:9,&quot;like_count&quot;:18,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><h4>XMP metadata in info response</h4><p>You&#8217;ve asked for it, and we&#8217;ve added it! Now imgproxy returns XMP metadata of the image in the <code>/info</code> endpoint response. Know everything about your images!</p><h4>OpenTelemetry support updates</h4><p>We&#8217;ve added a couple of new configs for imgproxy&#8217;s OpenTelemetry integration and made some fixes:</p><ul><li><p>New <code>IMGPROXY_OPEN_TELEMETRY_GRPC_INSECURE</code> config allows you to forbid insecure GRPS connection usage even if you didn&#8217;t provide a server certificate</p></li><li><p>New <code>IMGPROXY_OPEN_TELEMETRY_TRACE_ID_GENERATOR</code> allows control of how imgproxy generates trace IDs for OpenTelemetry</p></li><li><p>Now imgproxy uses a parent-based OpenTelemetry sampler by default</p></li><li><p>We&#8217;ve reimplemented OpenTelemetry&#8217;s TraceIdRatioBased sampler inside imgproxy so it works correctly with any valid trace IDs</p></li></ul><div><hr></div><h2>New Processing Options</h2><h4><code>disable_animation</code> <em>(Pro version only)</em></h4><p>This option allows you to disable an image&#8217;s animation even if the resulting image format supports it. You can use the <code>page</code> option to specify which animated image frame imgproxy should use.</p><p><em><a href="https://docs.imgproxy.net/latest/generating_the_url?id=disable-animation">docs.imgproxy.net/latest/generating_the_url?id=disable-animation</a></em></p><h4><code>gradient</code> <em>(Pro version only)</em></h4><p>This option adds a gradient to the image. You can control the direction and the color of the gradient and specify where the gradient starts and ends.</p><p><em><a href="https://docs.imgproxy.net/latest/generating_the_url?id=gradient">docs.imgproxy.net/latest/generating_the_url?id=gradient</a></em></p><div><hr></div><h2>Fixes</h2><p>We&#8217;re bug-intolerant, and we fix any found or reported bugs inside imgproxy ASAP. Here&#8217;s what we&#8217;ve fixed recently:</p><ul><li><p>Fixed false-positive SVG detections. Some non-SVG files could look like SVG to imgproxy, and now they don&#8217;t</p></li><li><p>Fixed possible infinite loop during SVG sanitization</p></li><li><p>Fixed saving of animated images that have variable frame delay as MP4</p></li><li><p>Fixed the size of thumbnails generated from videos that have an unusual sample aspect ratio (a.k.a. pixel aspect ratio)</p></li><li><p>Fixed issue when saving paletted PNGs with low bit-depth</p></li></ul><div><hr></div><h2>New Article</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4iW7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11410b4f-bf78-4e77-bb89-b18f51da031c_880x496.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4iW7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11410b4f-bf78-4e77-bb89-b18f51da031c_880x496.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4iW7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11410b4f-bf78-4e77-bb89-b18f51da031c_880x496.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4iW7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11410b4f-bf78-4e77-bb89-b18f51da031c_880x496.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4iW7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11410b4f-bf78-4e77-bb89-b18f51da031c_880x496.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4iW7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11410b4f-bf78-4e77-bb89-b18f51da031c_880x496.jpeg" width="880" height="496" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11410b4f-bf78-4e77-bb89-b18f51da031c_880x496.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:496,&quot;width&quot;:880,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51355,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4iW7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11410b4f-bf78-4e77-bb89-b18f51da031c_880x496.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4iW7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11410b4f-bf78-4e77-bb89-b18f51da031c_880x496.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4iW7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11410b4f-bf78-4e77-bb89-b18f51da031c_880x496.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4iW7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11410b4f-bf78-4e77-bb89-b18f51da031c_880x496.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>imgproxy Pro helps ARTE</strong>&#8212;a European TV channel dedicated to culture&#8212;process, resize, and put watermarks on 500,000 images a day. Why do they need this volume, and why did they move from Thumbor to imgproxy for image processing?</p><p>Find out in our new post:&nbsp;</p><p><em><a href="https://imgproxy.medium.com/the-art-of-image-processing-imgproxy-for-arte-television-22403924242c">imgproxy.medium.com/the-art-of-image-processing-imgproxy-for-arte-television-22403924242c</a></em></p>]]></content:encoded></item><item><title><![CDATA[imgproxy News #1: imgproxy has added some outstanding new features for image processing]]></title><description><![CDATA[Hey! We&#8217;ve just released some new features for imgproxy, and we&#8217;re happy to tell you all about the hottest &#128293; ones]]></description><link>https://imgproxy.substack.com/p/imgproxy-news-1-imgproxy-has-added</link><guid isPermaLink="false">https://imgproxy.substack.com/p/imgproxy-news-1-imgproxy-has-added</guid><dc:creator><![CDATA[imgproxy]]></dc:creator><pubDate>Thu, 20 Oct 2022 17:40:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff29c236d-f096-4e0d-a840-a1c1dfc6b58a_300x300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey! We&#8217;ve just released some new features for imgproxy, and we&#8217;re happy to tell you all about the hottest &#128293; ones.</p><div><hr></div><h2>New Features</h2><h4>imgproxy now supports OpenTelemetry</h4><p>imgproxy can now send its traces and metrics to an OpenTelemetry collector. <a href="https://opentelemetry.io/">OpenTelemetry</a> is an open protocol and toolkit for application instrumentation. OpenTelemetry collector has exporters for numerous popular metrics and traces storages and processors, so you&#8217;ll probably find your favorite there.</p><p>Enable OpenTelemetry support for both imgproxy OSS and imgproxy Pro:</p><p><em><a href="https://docs.imgproxy.net/open_telemetry">docs.imgproxy.net/open_telemetry</a></em></p><h4>Encrypted source URLs <em>(Pro version only)</em></h4><p>If you don&#8217;t want to reveal the original image URLs, you can now encrypt the source URLs with the AES-CBC algorithm.</p><p>Hide your URLs:</p><p><em><a href="https://docs.imgproxy.net/encrypting_the_source_url">docs.imgproxy.net/encrypting_the_source_url</a></em></p><div><hr></div><h2> New Processing Options</h2><h4><code>raw</code></h4><p>The <code>raw</code> option allows imgproxy to stream raw (unprocessed and unchecked) files. It&#8217;s helpful when you want imgproxy to be the one and only source of the content for your application. You can protect your content with imgproxy&#8217;s signature or even encrypt the source URLs.</p><p>Stream raw files:</p><p><em><a href="https://docs.imgproxy.net/generating_the_url?id=raw">docs.imgproxy.net/generating_the_url?id=raw</a></em></p><h4><code>watermark_shadow</code><em> (Pro version only)</em></h4><p>Do your watermarks disappear when placed against backgrounds of the same color? The <code>watermark_shadow</code> option adds a shadow to your watermarks to make them visible against any image.</p><p>Ensure your watermarks are distinctive:</p><p><em><a href="https://docs.imgproxy.net/generating_the_url?id=watermark-shadow">docs.imgproxy.net/generating_the_url?id=watermark-shadow</a></em></p><div><hr></div><h2>News</h2><h4>Beyond the features: we&#8217;re presenting imgproxy at Web Summit!</h4><p>From November 1-4, 2022, we&#8217;ll be visiting Web Summit in Lisbon to showcase imgproxy to the global tech industry. Don&#8217;t hesitate to say hello to the imgproxy team or visit our exhibition booth on November 4th!</p><p>Meet imgproxy at Web Summit:</p><p><a href="https://websummit.com/">websummit.com</a></p>]]></content:encoded></item></channel></rss>