Compress Image files using C#

Found a nice post by Mr.Polite for compressing JPEG images. Here's the link:

http://www.vbforums.com/showthread.php?p=2038463

Posting the code here for my reference in case the original post gets deleted or changed.

Image myImage = //... load the image somehow // Save the image with a quality of 50% SaveJpeg (destImagePath, myImage, 50); //add this! using System.Drawing.Imaging;                          /// <summary>         /// Saves an image as a jpeg image, with the given quality         /// </summary>         /// <param name="path">Path to which the image would be saved.</param>         // <param name="quality">An integer from 0 to 100, with 100 being the         /// highest quality</param>        public static void SaveJpeg (string path, Image img, int quality)         {             if (quality<0  ||  quality>100)                throw new ArgumentOutOfRangeException("quality must be between 0 and 100.");                        // Encoder parameter for image quality            EncoderParameter qualityParam =                 new EncoderParameter (Encoder.Quality, quality);            // Jpeg image codec            ImageCodecInfo   jpegCodec = GetEncoderInfo("image/jpeg");            EncoderParameters encoderParams = new EncoderParameters(1);            encoderParams.Param[0] = qualityParam;            img.Save (path, jpegCodec, encoderParams);         }        /// <summary>         /// Returns the image codec with the given mime type         /// </summary>        private static ImageCodecInfo GetEncoderInfo(string mimeType)         {            // Get image codecs for all image formats            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();            // Find the correct image codec            for(int i=0; i<codecs.Length; i++)                 if(codecs[i].MimeType == mimeType)                     return codecs[i];             return null;         }

This article is part of the GWB Archives. Original Author: bullpit

New on Geeks with Blogs