有時候,一張圖片太大,導致頁面的加載速度太慢,於是我們就要對圖片進行處理,而對它進行壓縮無疑是很好的方法。
下面是一個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
今天的分享就到這,很期待下次與大伙的分享,不要問我是誰,請叫我紅領巾。
