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

  • We Won The One Award I Actually Care About

    Full Scale made the Inc. 5000 for the fifth year straight, the 12th listing across my three companies. Here is why the one award you cannot buy is worth stopping for.

  • Your Customers Build the Features Now

    I let a tool I liked sit dead for a year rather than build the features I wanted. An MCP server meant I never had to, and your customers can do the same to your product.

  • Get the Size of a Directory in Linux the Easy Way

    du -sh for the quick answer, ncdu for the cleanup, df for the disk itself: every command for checking directory size in Linux, plus why du and df never agree.

  • Vim Search and Replace: The Ultimate Guide

    One :%s command replaces every match in a file before a find dialog would even open. The Vim substitute patterns worth the muscle memory: flags, ranges, capture groups, and multi-file edits.