對圖片處理這一塊不是很懂,自己寫不出來,這些年一直沒有停止找一個上傳圖片質量不下降,加水印不會導致模糊和水印周邊產生雜點的代碼。
網上基本上99%的代碼處理圖片質量都是下面這兩句:
//設置質量
//gWater.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
//gWater.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
我明確告訴你,球雞兒的卵用都沒得!!!!!!!!!
今天在一個論壇回帖中看到一個回帖:
bitPhoto.Save(Response.OutputStream, ImageFormat.Jpeg); 圖像保存的問題,默認的質量是60% EncoderParameter p; EncoderParameters ps; ps = new EncoderParameters(1); p = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L); ps.Param[0] = p; ImageCodecInfo ii = GetCodecInfo("image/jpeg"); bitPhoto.Save(Response.OutputStream,ii,ps); private ImageCodecInfo GetCodecInfo(string mimeType) { ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEncoders(); foreach (ImageCodecInfo ici in CodecInfo) { if (ici.MimeType == mimeType) return ici; } return null; }
馬上寫一個水印測試,圖片質量完全沒有變化,文字水印周邊沒有一顆雜點,太感謝這位大哥了!
實際上就是在save的時候傳入兩個參數,我們之前做的上傳基本上是直接save或者save的時候傳個圖片類型就完事兒了,問題就出在這里。
這里有篇圖片上傳的文章也不錯:http://www.cnblogs.com/lonelyxmas/p/3563959.html