Image compression without losing quality in c#

In this article, we learn how to compress large size images without losing image quality and without losing image size.

We have taken an image i.e. size 3.12MB and how we will see how to compress that image without losing the image quality and size.

Source code:

<html xmlns="">
<head runat="server">
    <form id="form1" runat="server">
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="btnsave" runat="server" OnClick="btnsave_Click" Text="Button" />


Code Behind(c#):

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class imagecompressor : System.Web.UI.Page
    protected void Page_Load(object sender, EventArgs e)

    private void compressimagesize(double scaleFactor, Stream sourcePath, string targetPath)
        using (var image = System.Drawing.Image.FromStream(sourcePath))
            var imgnewwidth = (int)(image.Width * scaleFactor);
            var imgnewheight = (int)(image.Height * scaleFactor);
            var imgthumnail = new Bitmap(imgnewwidth, imgnewheight);
            var imgthumbgraph = Graphics.FromImage(imgthumnail);
            imgthumbgraph.CompositingQuality = CompositingQuality.HighQuality;
            imgthumbgraph.SmoothingMode = SmoothingMode.HighQuality;
            imgthumbgraph.InterpolationMode = InterpolationMode.HighQualityBicubic;
            var imageRectangle = new Rectangle(0, 0, imgnewwidth, imgnewheight);
            imgthumbgraph.DrawImage(image, imageRectangle);
            imgthumnail.Save(targetPath, image.RawFormat);

    protected void btnsave_Click(object sender, EventArgs e)
        string filename = Path.GetFileName(FileUpload1.PostedFile.FileName);
        string targetPath = Server.MapPath("Images/" + filename);
        string saveimage = "Images/" + filename + "";
        Stream strm = FileUpload1.PostedFile.InputStream;
targetFile = targetPath;

        compressimagesize(0.5, strm, targetFile);


Compressed image without losing the quality but now image size 712KB

Image compression without losing quality in c# Image compression without losing quality in c# Reviewed by NEERAJ SRIVASTAVA on 11:03:00 AM Rating: 5

No comments:

Powered by Blogger.