<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sadok</title>
    <description>The latest articles on DEV Community by Sadok (@sadok).</description>
    <link>https://dev.to/sadok</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F75473%2F04e14658-690b-49b1-8533-c0cf4fb7da6f.jpeg</url>
      <title>DEV Community: Sadok</title>
      <link>https://dev.to/sadok</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sadok"/>
    <language>en</language>
    <item>
      <title>Unpacking Flyimg 1.3.0: AVIF format, Smart cropping, New demo page, and more!</title>
      <dc:creator>Sadok</dc:creator>
      <pubDate>Thu, 14 Dec 2023 21:19:54 +0000</pubDate>
      <link>https://dev.to/sadok/unpacking-flyimg-130-avif-format-smart-cropping-new-demo-page-and-more-26ap</link>
      <guid>https://dev.to/sadok/unpacking-flyimg-130-avif-format-smart-cropping-new-demo-page-and-more-26ap</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gvo_j7Dj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/khusz65mk5uoazuw7mtu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gvo_j7Dj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/khusz65mk5uoazuw7mtu.png" alt="Flyimg" width="771" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;Embarking on a new journey with &lt;a href="https://github.com/flyimg/flyimg"&gt;Flyimg&lt;/a&gt; 1.3.0, let's uncover the latest enhancements that keep this open-source image processing tool at the forefront of innovation. Revisiting the landscape explored in a previous dev.to &lt;a href="https://dev.to/sadok/flyimg-dockerized-php7-application-runs-as-a-microservice-to-resize-and-crop-images-on-the-fly-h3b"&gt;article&lt;/a&gt;, we'll delve into Flyimg's new features, including AVIF support, a smart cropping flag, an interactive demo page, and its steadfast use of the Mozjpeg library for JPEG compression, along with the ability to generate WebP format.&lt;/p&gt;

&lt;h2&gt;
  
  
  AVIF Support:
&lt;/h2&gt;

&lt;p&gt;Flyimg 1.3.0 now boasts support for the AVIF format, aligning itself with the cutting edge of image compression technology. AVIF brings forth superior quality and efficient compression, presenting developers with a potent option to optimize visuals without compromising loading times. Flyimg's embrace of AVIF enhances its capabilities, ensuring that it remains a versatile and future-proof tool for image processing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Smart Cropping Flag:
&lt;/h2&gt;

&lt;p&gt;Bid farewell to manual adjustments as Flyimg introduces the smart cropping flag in version 1.3.0. This intelligent feature takes the hassle out of fitting images to various layouts by automatically selecting the most relevant portion. Regardless of screen sizes or aspect ratios, the smart cropping flag ensures that your images consistently look impeccable, requiring minimal effort from developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interactive Demo Page:
&lt;/h2&gt;

&lt;p&gt;Version 1.3.0 introduces an interactive &lt;a href="https://demo.flyimg.io/"&gt;demo page&lt;/a&gt;, transforming theoretical discussions into hands-on experiences. Developers and enthusiasts can now experiment with Flyimg's features in real-time, tweaking parameters and witnessing immediate results. The demo page not only makes image manipulation accessible but turns it into an enjoyable journey for users exploring the capabilities of Flyimg.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mozjpeg and WebP:
&lt;/h2&gt;

&lt;p&gt;Flyimg 1.3.0 continues its commitment to high-quality JPEG compression by leveraging the Mozjpeg library. This ensures that Flyimg maintains its standards in delivering optimized and visually appealing JPEG images. Additionally, Flyimg doesn't stop at JPEG—it also supports the generation of WebP format, providing developers with a versatile range of options for efficient image delivery.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;Flyimg, an open-source project since 2016, has seen gradual growth, with a notable nod from one company in the Adapters.md file. While contributions are modest, Flyimg remains a reliable tool in image processing. In the realm of web development, its steady journey reflects the enduring power of simplicity and reliability.&lt;/p&gt;

</description>
      <category>imageprocessing</category>
      <category>avif</category>
      <category>mozjpeg</category>
      <category>webp</category>
    </item>
    <item>
      <title>Flyimg: Dockerized application to resize and crop images on the fly.</title>
      <dc:creator>Sadok</dc:creator>
      <pubDate>Tue, 29 May 2018 16:00:03 +0000</pubDate>
      <link>https://dev.to/sadok/flyimg-dockerized-php7-application-runs-as-a-microservice-to-resize-and-crop-images-on-the-fly-h3b</link>
      <guid>https://dev.to/sadok/flyimg-dockerized-php7-application-runs-as-a-microservice-to-resize-and-crop-images-on-the-fly-h3b</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkhusz65mk5uoazuw7mtu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkhusz65mk5uoazuw7mtu.png" alt="Flyimg"&gt;&lt;/a&gt;&lt;br&gt;
With Responsive Images, today we have a bunch of front-end tools to deliver the most appropriate image to a browser. But you still have to generate those images.&lt;/p&gt;

&lt;p&gt;This is our (open source) take on the problem: Flyimg &lt;a href="https://github.com/flyimg/flyimg" rel="noopener noreferrer"&gt;https://github.com/flyimg/flyimg&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A microservice that will resize, crop, transform and compress images on the fly&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Get images from anywhere on the internet and store them locally for further operations.&lt;/li&gt;
&lt;li&gt;Resize an image and serve it compressed (Moz-Jpeg for JPEGs)&lt;/li&gt;
&lt;li&gt;Crop images to given coordinates&lt;/li&gt;
&lt;li&gt;Convert between some formats (Webp, JPEG, PNG, GIF)&lt;/li&gt;
&lt;li&gt;It can restrict the domains or IPs from where it pulls images to transform.&lt;/li&gt;
&lt;li&gt;It's a bunch of well known open source projects packed together for convenience.&lt;/li&gt;
&lt;li&gt;It includes face detection, cropping, face blurring, image rotation and many other options.&lt;/li&gt;
&lt;li&gt;Simple and easy to extend (our main goal).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With the magic of Docker, you can have one running in 10 minutes in AWS or Digital Ocean on the cheapest servers you can get.&lt;/p&gt;

&lt;p&gt;Of course, there are a hundred services that will get your money to do it. Also, some open-source projects will do a bunch of things, many with way more features, but they are hard to set up and use. In many cases you need to compile C libraries in very specific ways... then deal with the configs of a server...&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic usage
&lt;/h2&gt;

&lt;p&gt;To resize the following image: &lt;a href="https://www.mozilla.org/media/img/logos/firefox/logo-quantum-high-res.cfd87a8f62ae.png" rel="noopener noreferrer"&gt;https://www.mozilla.org/media/img/logos/firefox/logo-quantum-high-res.cfd87a8f62ae.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You call your img.service and give it some params in the URL like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://demo.flyimg.io/upload/w_333,h_200,q_90/https://www.mozilla.org/media/img/logos/firefox/logo-quantum-high-res.cfd87a8f62ae.png" rel="noopener noreferrer"&gt;https://demo.flyimg.io/upload/w_333,h_200,q_90/https://www.mozilla.org/media/img/logos/firefox/logo-quantum-high-res.cfd87a8f62ae.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-&amp;gt; That will create a version of the image that fits in a 333x200 rectangle:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdemo.flyimg.io%2Fupload%2Fw_333%2Ch_200%2Cq_90%2Fhttps%3A%2F%2Fwww.mozilla.org%2Fmedia%2Fimg%2Flogos%2Ffirefox%2Flogo-quantum-high-res.cfd87a8f62ae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdemo.flyimg.io%2Fupload%2Fw_333%2Ch_200%2Cq_90%2Fhttps%3A%2F%2Fwww.mozilla.org%2Fmedia%2Fimg%2Flogos%2Ffirefox%2Flogo-quantum-high-res.cfd87a8f62ae.png"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>image</category>
      <category>imageprocessing</category>
      <category>imagecropping</category>
      <category>microservices</category>
    </item>
  </channel>
</rss>
