Поиск  
Always will be ready notify the world about expectations as easy as possible: job change page
Jul 15

Convert images to WebP in C# .NET 7

Convert images to WebP in C# .NET 7
Источник:
Просмотров:
2782

I recently migrated this blog from WordPress to a custom Nuxt site. I moved from WordPress to have more control over the blog and not have to rely on plugins to do everything. It’s worked out really well but there is one plugin I do miss: Smush ☹️

Performance is really important for all websites. It improves user experience and has a big impact on SEO rankings. The standard tool for measuring performance is Google Lighthouse. It’s what I used when I migrated this blog. Lighthouse scores your performance out of 100 and gives suggestions on how to improve it.

Images are often the biggest assets in a blog post and can really damage the Lighthouse score. This is where Smush comes in. Smush does a great job of automatically optimizing your blog’s images. Optimized images helps your blog load quickly and get a good Lighthouse score.

Now that I don’t have access to Smush on my custom Nuxt site I have to optimize the images myself…

An improvement that Lighthouse always suggests is to convert all images to the WebP format. WebP is a replacement for Jpeg, Png and Gif images. It has a much smaller file size which is why Lighthouse suggests it. Converting all my images to it should give the blog a nice boast 🚀

All the images on this blog are served by an Azure function and cached via Cloudflare. This means I can convert them to WebP on the fly inside the function.

Anyway that’s a really long explanation for just a couple lines of code 😅

All you need is the SixLabors.ImageSharp Nuget package and some code like this:

var imageBytes = await File.ReadAllBytesAsync("your-image.jpg");

using var inStream = new MemoryStream(imageBytes);
            
using var myImage = await Image.LoadAsync(inStream);

using var outStream = new MemoryStream();
            
await myImage.SaveAsync(outStream, new WebpEncoder());

return new FileContentResult(outStream.ToArray(), "image/webp");

WebP file size example

Lighthouse isn’t lying BTW, the difference in file size is actually really good…

For example, this screenshot of my blog home page goes from 622KB as a PNG to just 72KB as a WebP 👀

Похожее
Feb 12
Author: Kartik
Application Insights - Telemetry 1. How do I instrument (monitor/record/enabling to capture telemetry) an application? Autoinstrumentation - if you don’t have access to source code You only need to install the Application Insights SDK if: You require custom events and...
Feb 25, 2023
Author: Mike Brind
Back in 2008, I wrote a series of articles about using iTextSharp to generate PDF files in an ASP.NET application. I still use iTextSharp in a large MVC 5 application that I'm in the process of migrating to ASP.NET Core....
17 декабря 2014 г.
Краткий обзор .NET Core, как это соотносится с .NET Framework и что это все означает для кросс-платформенной разработки и разработки с открытым кодом. Взгляд назад – мотивация для .NET Core Прежде всего, давайте оглянемся назад, чтобы понять, как платформа .NET...
28 июня 2021 г.
Автор: MaxRokatansky
Эта статья раскрывает концепции Middleware в ASP.NET Core. К концу этой статьи вы получите четкое представление о следующих моментах: Что такое Middleware? Почему порядок расположения Middleware имеет значение? Методы Run, Use и Map. Как создать собственное Middleware? Как реализовать просмотр...
Написать сообщение
Тип
Почта
Имя
*Сообщение