今天查找之前寫的畫圖程序,想完善一下,發現測試
圖片添加文字水印時候會有些模糊,特別是小字體的時候特別模糊,字體
通過一番調適,終於發現了問題orm
帖上代碼,警示本身對象
System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath("b1.jpg"));
Bitmap bitWaterMark = new Bitmap(image.Width, image.Height);
Graphics g = Graphics.FromImage(bitWaterMark);圖片
g.DrawImage(image, 0, 0, image.Width, image.Height);string
Font f = new Font("verdana", 14);
Brush c = new SolidBrush(Color.FromName("red"));
string addtext = "測試字體啊";
g.DrawString(addtext, f, c, 10, 1);
g.Dispose();
image.Dispose();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
bitWaterMark.Save(ms, ImageFormat.Bmp);it
//bitWaterMark.Save(ms, ImageFormat.Jpeg);
//從新生成Image對象
System.Drawing.Image img2 = System.Drawing.Image.FromStream(ms);
//返回新的Image對象
//bitWaterMark.Save(Server.MapPath("test.jpg"));
img2.Save(Server.MapPath("test.jpg"));test
//img2.Save(Server.MapPath("test.jpg"), ImageFormat.Jpeg);
bitWaterMark.Dispose();map
紅色字體部分是問題所在,今天才發現這個問題,我想若是用C#畫圖的朋友也會發現這個問題程序
用bitemap類無論是存儲到文件,仍是存儲爲數據流來處理 image 對象時候,若是 加上ImageFormat.Jpeg
都會讓圖片變模糊,真是很詭異,若是 必需要存儲爲數據流,那麼用ImageFormat.Bmp存儲而後保存,生成的圖片也會比ImageFormat.Jpeg要清晰的多,但問題終於解決了,生成的圖片很清晰了。