Archive for May, 2014

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:

// Read a file and resize it.
byte[] photoBytes = File.ReadAllBytes(file);
int quality = 70;
ImageFormat format = ImageFormat.Jpeg;
Size size = new Size(150, 0)
using (MemoryStream inStream = new MemoryStream(photoBytes))
    using (MemoryStream outStream = new MemoryStream())
        using (ImageFactory imageFactory = new ImageFactory())
            // Load, resize, set the format and quality and save an image.
        // Do something with the stream.

You can easily chain functions with the API, like tinting and constraning:

            .Tint(Color.FromArgb(255, 106, 166, 204))

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 and star this project! Get involved, file issues, and contribute!




Simple, reference that:


using Microsoft.AspNet.Identity;


After you can see two extensions:

//get User Id
var CurrentUserId = User.Identity.GetUserId()
//get UserName
var CurrentUserName = User.Identity.GetUserName()

Enjoy it!