I really enjoy image manipulation in code. Sure, resizing photos is fun in Photoshop, but there’s something viscerally enjoyable when you change images with your own code.
I’ve talked about image resizing libraries like ImageResizer before, but there’s certainly room for more than one. Today I want to showcase ImageProcessor, an open source “collection of lightweight libraries written in C# that allows you to manipulate images on-the-fly using .NET 4+.” ImageProcessor is available on GitHub.
ImageProcessor methods include; Resize, Rotate, Rounded Corners, Flip, Crop, Watermark, Filter, Saturation, Brightness, Contrast, Quality, Format, Vignette, Gaussian Blur, Gaussian Sharpen, and Transparency.
ImageProcessor has a notable number of configuration options for web apps, and a supporting ImageProcessor.Web package as well. It’s an impressive body of work.
I like this simple example of loading, resizing, and saving an image with their fluent API:
You can easily chain functions with the API, like tinting and constraning:
When you add ImageProcessor.Web it adds caching that takes pressure off your web servers. You can easily add HttpHandlers to watermark an image, for example, and cache the result.
This is a library that has as a lot of potential. Since it’s open source, I’m sure they’d appreciate help from the community! Personally, I think they could use more Unit Tests and more examples.
Head over to https://github.com/JimBobSquarePants/ImageProcessor and star this project! Get involved, file issues, and contribute!
- Accessing EXIF Photo Data from JPEGs with PowerShell
- NuGet Package of Week #11 – ImageResizer enables clean, clear image resizing in ASP.NET
- Back to Basics: Dynamic Image Generation, ASP.NET Controllers, Routing, IHttpHandlers