What free resizing library can I use for resizing and possibly for image processing?

I used Umbraco, and there is a very beautiful ImageGen library that allows you to resize images on the fly and processes processed images.

Is there something similar to it that I can use outside of Umbraco?

(I thought I could use ImageGen without Umbraco, but it looks like it's not free)

thanks

+8
c # image image-resizing
source share
3 answers

I understand that this question is quite old, but since I still stumbled upon it, I decided to publish my findings.

http://imageprocessor.org/ seems to be a relatively new library, which is free and open source, and has many features too!

+9
source share

I wrote the ImageResizer HttpModule , which is free, open source and freely supported through the StackOverflow imageresizer tag .

It has 39 plugins, some of which require a license, but all source code for everything is available at http://imageresizing.net/download .

works with all .NET CMS, including Umbraco .

Unlike ImageGen, it is designed to scale to millions of images.

+6
source share

The .NET Framework includes support for image resizing.

The following is a sample code from my book, Ultra-Fast ASP.NET :

using System; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; using System.IO; namespace Samples { public class ImageResizer { private static ImageCodecInfo jpgEncoder; public static void ResizeImage(string inFile, string outFile, double maxDimension, long level) { // // Load via stream rather than Image.FromFile to release the file // handle immediately // using (Stream stream = new FileStream(inFile, FileMode.Open)) { using (Image inImage = Image.FromStream(stream)) { double width; double height; if (inImage.Height < inImage.Width) { width = maxDimension; height = (maxDimension / (double)inImage.Width) * inImage.Height; } else { height = maxDimension; width = (maxDimension / (double)inImage.Height) * inImage.Width; } using (Bitmap bitmap = new Bitmap((int)width, (int)height)) { using (Graphics graphics = Graphics.FromImage(bitmap)) { graphics.SmoothingMode = SmoothingMode.HighQuality; graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; graphics.DrawImage(inImage, 0, 0, bitmap.Width, bitmap.Height); if (inImage.RawFormat.Guid == ImageFormat.Jpeg.Guid) { if (jpgEncoder == null) { ImageCodecInfo[] ici = ImageCodecInfo.GetImageDecoders(); foreach (ImageCodecInfo info in ici) { if (info.FormatID == ImageFormat.Jpeg.Guid) { jpgEncoder = info; break; } } } if (jpgEncoder != null) { EncoderParameters ep = new EncoderParameters(1); ep.Param[0] = new EncoderParameter(Encoder.Quality, level); bitmap.Save(outFile, jpgEncoder, ep); } else bitmap.Save(outFile, inImage.RawFormat); } else { // // Fill with white for transparent GIFs // graphics.FillRectangle(Brushes.White, 0, 0, bitmap.Width, bitmap.Height); bitmap.Save(outFile, inImage.RawFormat); } } } } } } public static void GetImageSize(string inFile, out int width, out int height) { using (Stream stream = new FileStream(inFile, FileMode.Open)) { using (Image src_image = Image.FromStream(stream)) { width = src_image.Width; height = src_image.Height; } } } } } 
+3
source share

All Articles