C#图片压缩

来源:互联网 发布:二次元图片制作软件 编辑:程序博客网 时间:2024/05/01 17:56
        #region getThumImage        /**/        /// <summary>        /// 生成缩略图        /// </summary>        /// <param name="sourceFile">原始图片文件</param>        /// <param name="quality">质量压缩比</param>        /// <param name="multiple">收缩倍数</param>        /// <param name="outputFile">输出文件名</param>        /// <returns>成功返回true,失败则返回false</returns>        public static bool getThumImage(String sourceFile, long quality, int multiple, String outputFile)        {            try            {                long imageQuality = quality;                Bitmap sourceImage = new Bitmap(sourceFile);                //ImageCodecInfo myImageCodecInfo = GetEncoderInfo("image/jpeg");                ImageCodecInfo myImageCodecInfo = GetEncoderInfo("image/png");                ImageCodecInfo saveImageCodeInfo = GetEncoderInfo("image/jpeg");                System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;                EncoderParameters myEncoderParameters = new EncoderParameters(1);                EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, imageQuality);                myEncoderParameters.Param[0] = myEncoderParameter;                float xWidth = sourceImage.Width;                float yWidth = sourceImage.Height;                Bitmap newImage = new Bitmap((int)(xWidth / multiple), (int)(yWidth / multiple));                Graphics g = Graphics.FromImage(newImage);                g.DrawImage(sourceImage, 0, 0, xWidth / multiple, yWidth / multiple);                g.Dispose();                //newImage.Save(outputFile, myImageCodecInfo, myEncoderParameters);                //按照jpg的格式保存                newImage.Save(outputFile, saveImageCodeInfo, myEncoderParameters);                return true;            }            catch            {                return false;            }        }        #endregion getThumImage        /**/        /// <summary>        /// 获取图片编码信息        /// </summary>        private static ImageCodecInfo GetEncoderInfo(String mimeType)        {            int j;            ImageCodecInfo[] encoders;            encoders = ImageCodecInfo.GetImageEncoders();            for (j = 0; j < encoders.Length; ++j)            {                if (encoders[j].MimeType == mimeType)                    return encoders[j];            }            return null;        }
需要引用以下命名空间
using System.Drawing;using System.Drawing.Drawing2D;using System.Drawing.Imaging;using System.IO;
调用方式:
<pre name="code" class="csharp">            string pathPerc = @"F:\cc.jpg";            string source = @"D:\1443410994498-.PNG";  //原图片地址            if (!File.Exists(pathPerc))            {                File.Create(pathPerc).Close();            }            else            {                File.Delete(pathPerc);                File.Create(pathPerc).Close();            }            bool result = Common.getThumImage(source, 20, 1, pathPerc);            if (result)            {                Console.WriteLine("压缩成功");                Console.ReadKey();            }            else            {                Console.WriteLine("压缩失败");                Console.ReadKey();            }


                                             
0 0
原创粉丝点击