C#中按指定質(zhì)量保存圖片的實(shí)例代碼
在程序中直接生產(chǎn)jpg圖片,質(zhì)量不如原圖,是因?yàn)槲④浀腎mage.Save方法保存到圖片壓縮質(zhì)量為75,所以保存的圖片質(zhì)量偏低了,要使生成的圖片質(zhì)量有所提高就需要自己設(shè)定EncoderParameters類(lèi)的質(zhì)量參數(shù)和ImageCodecInfo類(lèi)的圖片保存格式。
System.Drawing.Imaging.Encoder類(lèi)來(lái)制定需要呈現(xiàn)的方式和各種參數(shù),例如圖片質(zhì)量參數(shù),掃描方法參數(shù),色度表參數(shù),壓縮參數(shù),顏色深度等等.到此,大家應(yīng)該明白修改圖片質(zhì)量的步驟和方法了.主要就是對(duì)System.Drawing.Imaging.Encoder設(shè)置,然后通過(guò)System.Drawing.Imaging.Encoder構(gòu)造出來(lái)EncoderParameter類(lèi),將EncoderParameter傳遞給EncoderParameters數(shù)組,從而得到一個(gè)完全符合自己意愿的圖片!呵呵,說(shuō)了一大堆.其實(shí)代碼很簡(jiǎn)單:
先引入:using System.Drawing.Imaging;
/// <summary>
/// 按指定的壓縮質(zhì)量及格式保存圖片(微軟的Image.Save方法保存到圖片壓縮質(zhì)量為75)
/// </summary>
/// <param name="sourceImage">要保存的圖片的Image對(duì)象</param>
/// <param name="savePath">圖片要保存的絕對(duì)路徑</param>
/// <param name="imageQualityValue">圖片要保存的壓縮質(zhì)量,該參數(shù)的值為1至100的整數(shù),數(shù)值越大,保存質(zhì)量越好</param>
/// <returns>保存成功,返回true;反之,返回false</returns>
public bool SaveImageForSpecifiedQuality(System.Drawing.Image sourceImage, string savePath, int imageQualityValue)
{
//以下代碼為保存圖片時(shí),設(shè)置壓縮質(zhì)量
EncoderParameters encoderParameters = new EncoderParameters();
EncoderParameter encoderParameter = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, imageQualityValue);
encoderParameters.Param[0] = encoderParameter;
try
{
ImageCodecInfo[] ImageCodecInfoArray = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo jpegImageCodecInfo = null;
for (int i = 0; i < ImageCodecInfoArray.Length; i++)
{
if (ImageCodecInfoArray[i].FormatDescription.Equals("JPEG"))
{
jpegImageCodecInfo = ImageCodecInfoArray[i];
break;
}
}
sourceImage.Save(savePath, jpegImageCodecInfo, encoderParameters);
return true;
}
catch
{
return false;
}
}
調(diào)用方法:
System.Drawing.Image image = System.Drawing.Image.FromFile("D:\\TestImage\\0.jpg");
SaveImageForSpecifiedQuality(image, "D:\\TestImage\\1.jpg", 100, ImageFormat.Jpeg);image.Dispose();
- c#批量上傳圖片到服務(wù)器示例分享
- C# 最齊全的上傳圖片方法
- C#保存圖片到數(shù)據(jù)庫(kù)并讀取顯示圖片的方法
- C# 手動(dòng)/自動(dòng)保存圖片的實(shí)例代碼
- c#讀取圖像保存到數(shù)據(jù)庫(kù)中(數(shù)據(jù)庫(kù)保存圖片)
- C#給圖片添加水印完整實(shí)例
- C#給圖片加水印的簡(jiǎn)單實(shí)現(xiàn)方法
- c#多圖片上傳并生成縮略圖的實(shí)例代碼
- c#生成縮略圖不失真的方法實(shí)例分享
- c#生成縮略圖的實(shí)現(xiàn)方法
- C#實(shí)現(xiàn)的上傳圖片、保存圖片、加水印、生成縮略圖功能示例
相關(guān)文章
MVC設(shè)定默認(rèn)路由為指定的Area下的某個(gè)action
今天小編就為大家分享一篇關(guān)于MVC設(shè)定默認(rèn)路由為指定的Area下的某個(gè)action,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01快速解決C# android base-64 字符數(shù)組的無(wú)效長(zhǎng)度問(wèn)題
下面小編就為大家?guī)?lái)一篇快速解決C# android base-64 字符數(shù)組的無(wú)效長(zhǎng)度問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08C#使用SQLDMO操作數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了C#使用SQLDMO操作數(shù)據(jù)庫(kù)的方法,實(shí)例分析了基于SQLDMO.dll動(dòng)態(tài)鏈接庫(kù)操作數(shù)據(jù)庫(kù)的相關(guān)技巧,需要的朋友可以參考下2015-06-06