读书人

C# 图像压缩,该如何解决

发布时间: 2012-03-21 13:33:15 作者: rapoo

C# 图像压缩
正在做个小东西,需要将用户上传的图片压缩一下,主要是为了节约空间。
想问一下有没有开源的.Net图像处理库或者专门的图像压缩库。

谢谢!

[解决办法]
SharpZip就OK了
http://www.icsharpcode.net/opensource/sharpziplib/
[解决办法]
很多图片格式自带压缩,就算再压缩效果也不好。不建议再压缩了。

如果只是为了加载 可以在IIS启用GZIP
[解决办法]

C# code
#region 图片压缩,转换为JPG格式        /// <summary>        /// 获取指定mimeType的ImageCodecInfo        /// </summary>        private static ImageCodecInfo GetImageCodecInfo(string mimeType)        {            ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEncoders();            foreach(ImageCodecInfo ici in CodecInfo)            {                if(ici.MimeType == mimeType)                    return ici;            }            return null;        }        /// <summary>        ///  获取inputStream中的Bitmap对象        /// </summary>        public static Bitmap GetBitmapFromStream(Stream inputStream)        {            Bitmap bitmap = new Bitmap(inputStream);            return bitmap;        }        /// <summary>        /// 将Bitmap对象压缩为JPG图片类型        /// </summary>        /// <param name="bmp">源bitmap对象</param>        /// <param name="saveFilePath">目标图片的存储地址</param>        /// <param name="quality">压缩质量,越大照片越清晰,推荐80</param>        public static void CompressAsJPG(Bitmap bmp, string saveFilePath, int quality)        {            EncoderParameter p = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);            ;            EncoderParameters ps = new EncoderParameters(1);            ps.Param[0] = p;            bmp.Save(saveFilePath, GetImageCodecInfo("image/jpeg"), ps);            bmp.Dispose();        }        /// <summary>        /// 将inputStream中的对象压缩为JPG图片类型        /// </summary>        /// <param name="inputStream">源Stream对象</param>        /// <param name="saveFilePath">目标图片的存储地址</param>        /// <param name="quality">压缩质量,越大照片越清晰,推荐80</param>        public static void CompressAsJPG(Stream inputStream, string saveFilePath, int quality)        {            Bitmap bmp = GetBitmapFromStream(inputStream);            CompressAsJPG(bmp, saveFilePath, quality);        }        #endregion 

读书人网 >C#

热点推荐