IMG-LOGO

How to Resize Image in ASP.Net C#?

andy - 06 Aug, 2013 10502 Views 0 Comment

This tutorial will show you how you can resize images dynamically in ASP.Net C#.

You will need to import the Drawing namespace to your project or site page.

    
//required .net objects
using System.Drawing;
using System.Drawing.Imaging;

The following function will resize the image by accepting the dimension of the image you need, followed by the location of where the image located and lastly where you want to save the updated/resized image.

    
    //function to resize image
    public static void ResizeImage(int size, string filePath, string saveFilePath) {
        //variables for image dimension/scale
        double newHeight = 0;
        double newWidth = 0;
        double scale = 0;
        
        //create new image object
        Bitmap curImage = new Bitmap(filePath);
        
        //Determine image scaling
        if (curImage.Height > curImage.Width) {
            scale = Convert.ToSingle(size) / curImage.Height;
        } else {
            scale = Convert.ToSingle(size) / curImage.Width;
        }
        if (scale < 0 || scale > 1) { scale = 1;}

        //New image dimension
        newHeight = Math.Floor(Convert.ToSingle(curImage.Height) * scale);
        newWidth = Math.Floor(Convert.ToSingle(curImage.Width) * scale);

        //Create new object image
        Bitmap newImage = new Bitmap(curImage, Convert.ToInt32(newWidth), Convert.ToInt32(newHeight));
        Graphics imgDest = Graphics.FromImage(newImage);
        imgDest.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
        imgDest.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
        imgDest.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
        imgDest.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
        ImageCodecInfo[] info = ImageCodecInfo.GetImageEncoders();
        EncoderParameters param = new EncoderParameters(1);
        param.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);

        //Draw the object image
        imgDest.DrawImage(curImage, 0, 0, newImage.Width, newImage.Height);
        
        //Save image file
        newImage.Save(saveFilePath, info[1], param);
        
        //Dispose the image objects
        curImage.Dispose();
        newImage.Dispose();
        imgDest.Dispose();
    }

You may interested on our other article about How to crop image in ASP.Net C#

Comments

There are no comments available.

Write Comment
0 characters entered. Maximum characters allowed are 1000 characters.

Related Articles

How to remove html tags from string in c#?

Sometimes you need to remove HTML tags from string to ensure there are no dangerous or malicious scripts especially when you want to store the string or data text into the database.