圖片處理之質量壓縮


有時候,一張圖片太大,導致頁面的加載速度太慢,於是我們就要對圖片進行處理,而對它進行壓縮無疑是很好的方法。

下面是一個winform窗體小程序,它可以壓縮一些圖片,當然,壓縮本身就會導致圖片失真,取舍根據實際情況決定。比如說,我的手機網站上面,用戶上傳圖片時,如果圖片的大小大於200KB,那么,就調用壓縮方法,間接性提升了對用戶的友好性。

下面是質量壓縮的代碼:

     /// <summary>
        /// 圖片處理
        /// </summary>
        /// <param name="oldfilepath">圖片地址</param>
        /// <returns></returns>
        public static string ImagesLevel(string oldfilepath)
        {
            try
            {
                string address = oldfilepath.Substring(oldfilepath.IndexOf('.'));
                string path = oldfilepath.Substring(0, oldfilepath.IndexOf('.'));
                var fileNewName = "_By紅領巾" + address;
                string uploadPath = path + fileNewName;
                System.Drawing.Image srcImg = System.Drawing.Image.FromFile(oldfilepath);
                Bitmap thumbImg = new Bitmap(srcImg);
                //質量壓縮
                ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
                System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
                EncoderParameters myEncoderParameters = new EncoderParameters(1);
                EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 50L);
                myEncoderParameters.Param[0] = myEncoderParameter;
                //保存小的新圖片
                thumbImg.Save(uploadPath, jgpEncoder, myEncoderParameters);
                thumbImg.Dispose();
                srcImg.Dispose();
                return "1";
            }
            catch (Exception)
            {
                return "0";
            }
        }
        private static ImageCodecInfo GetEncoder(ImageFormat format)
        {
            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
            foreach (ImageCodecInfo codec in codecs)
            {
                if (codec.FormatID == format.Guid)
                {
                    return codec;
                }
            }
            return null;
        }

  最后,winform小程序長這個樣子:

附上winform小程序Demo地址: http://pan.baidu.com/s/1jG1cV1k

今天的分享就到這,很期待下次與大伙的分享,不要問我是誰,請叫我紅領巾。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM